DATE | 2023-12-16T17:05:50+00:00 |
DESCRIPTION | User manual for the cardant server. |
IDENTIFIER | 9e6e25d5-7759-49a9-97b4-d0c645799e42 |
LANGUAGE | en |
SOURCE | https://www.io7m.com/software/cardant/ |
TITLE | Cardant User Manual 1.0.0-beta0001 |
$ gpg --verify com.io7m.cardant.main-1.0.0-beta0001-distribution.zip.asc gpg: assuming signed data in 'com.io7m.cardant.main-1.0.0-beta0001-distribution.zip.asc' gpg: Signature made Tue 28 Jun 2022 15:01:56 GMT gpg: using RSA key 3CCE59428B30462D10459909C5607DA146E128B8 gpg: issuer "contact@io7m.com" gpg: using pgp trust model gpg: Good signature from "io7m.com (2022 maven-rsa-key) <contact@io7m.com>" [unknown]
$ unzip com.io7m.cardant.main-1.0.0-beta0001-distribution.zip $ export CARDANT_HOME=$(realpath cardant) $ ./cardant/bin/cardant cardant: usage: cardant [command] [arguments ...] ...
$ podman pull quay.io/io7mcom/cardant:1.0.0-beta0001 $ podman run quay.io/io7mcom/cardant:1.0.0-beta0001 cardant: usage: cardant [command] [arguments ...] ...
$ curl http://localhost:30000/health OK
$ cardant initialize \ --admin-id '92f83bce-3973-4db8-8aaf-d401443a9772' \ --admin-name 'someone' \ --configuration server.conf
$ cardant server --configuration server.conf info: [localhost/<unresolved>:30000] Inventory API server started
$ cardant shell [cardant]# version com.io7m.cardant 0.0.1-SNAPSHOT 20af71248a7784b0e5247eab4b1ebd28de284739
$ podman run \ --name some-postgres \ -e POSTGRES_USER=cardant_install \ -e POSTGRES_PASSWORD=mysecretpassword \ -d postgres
<?xml version="1.0" encoding="UTF-8" ?> <Configuration xmlns="com.io7m.cardant:configuration:1" xmlns:ct="com.io7m.cardant:tls:1"> <InventoryService ListenAddress="[::]" ListenPort="30000" SessionExpiration="PT30M" ExternalAddress="http://cardant.example.com:30000"> <ct:TLSDisabled/> </InventoryService> <Database Kind="POSTGRESQL" OwnerRoleName="cardant_install" OwnerRolePassword="892a2b68-2ddf-478a-a8ab-37172f6ac2fe" WorkerRolePassword="e61135dc-1d3f-4ab2-85ef-95ef49d66285" ReaderRolePassword="c2026069-97e7-45b1-85c4-a2349bbb847b" Address="db.example.com" Port="5432" Name="cardant" Create="true" Upgrade="true" Language="english"/> <Idstore BaseURI="https://idstore.example.com:50000" PasswordResetURI="https://idstore.example.com:50001/reset"/> <Limits MaximumFileUploadSizeOctets="10000000" MaximumCommandSizeOctets="10000000"/> <Maintenance TLSReloadInterval="PT24H"/> <OpenTelemetry LogicalServiceName="cardant01"> <Logs Endpoint="http://logs.example.com:4317" Protocol="GRPC"/> <Metrics Endpoint="http://metrics.example.com:4317" Protocol="GRPC"/> <Traces Endpoint="http://traces.example.com:4317" Protocol="GRPC"/> </OpenTelemetry> </Configuration>
<?xml version="1.0" encoding="UTF-8" ?> <InventoryService xmlns="com.io7m.cardant:configuration:1" xmlns:tls="com.io7m.cardant:tls:1" ListenAddress="[::]" ListenPort="30000" SessionExpiration="PT30M" ExternalAddress="http://cardant.example.com:30000"> <tls:TLSEnabled> <tls:KeyStore Type="CANONMILL" Provider="CANONMILL" Password="ignored" File="/cardant/keystore.xml"/> <tls:TrustStore Type="JKS" Provider="SUN" Password="changeit" File="/usr/lib/jvm/java-21-openjdk/lib/security/cacerts"/> </tls:TLSEnabled> </InventoryService>
<?xml version="1.0" encoding="UTF-8" ?> <Idstore xmlns="com.io7m.cardant:configuration:1" BaseURI="https://idstore.example.com:50000" PasswordResetURI="https://idstore.example.com:50001/reset"/>
<Maintenance TLSReloadInterval="PT30M"/>
<Limits MaximumFileUploadSizeOctets="10000000" MaximumCommandSizeOctets="10000000"/>
<Database Kind="POSTGRESQL" OwnerRoleName="cardant_install" OwnerRolePassword="mydatabase" WorkerRolePassword="willquickly" ReaderRolePassword="becompromised" Address="db.example.com" Port="5432" Name="cardant" Create="true" Upgrade="true" Language="english" MinimumPoolConnections="1" MaximumPoolConnections="5"/>
<OpenTelemetry LogicalServiceName="idstore"> <Logs Endpoint="http://logs.example.com:4317" Protocol="GRPC"/> <Metrics Endpoint="http://metrics.example.com:4317" Protocol="GRPC"/> <Traces Endpoint="http://traces.example.com:4317" Protocol="GRPC"/> </OpenTelemetry>
<?xml version="1.0" encoding="UTF-8" ?> <!-- Copyright © 2023 Mark Raynsford <code@io7m.com> https://www.io7m.com Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="com.io7m.cardant:configuration:1" xmlns:ct="com.io7m.cardant:tls:1" xmlns:c="com.io7m.cardant:configuration:1"> <import namespace="com.io7m.cardant:tls:1"/> <annotation> <documentation> The schema for server configuration files. </documentation> </annotation> <simpleType name="DatabaseKind"> <annotation> <documentation> The kind of the target database. Currently, only PostgreSQL is supported. </documentation> </annotation> <restriction base="string"> <enumeration value="POSTGRESQL"> <annotation> <documentation> The database is PostgreSQL. </documentation> </annotation> </enumeration> </restriction> </simpleType> <element name="Idstore"> <annotation> <documentation> Configuration for the idstore server that will be used for user identity information. </documentation> </annotation> <complexType> <attribute name="BaseURI" type="anyURI" use="required"> <annotation> <documentation> The base URI of the idstore user API. </documentation> </annotation> </attribute> <attribute name="PasswordResetURI" type="anyURI" use="required"> <annotation> <documentation> The password reset URI to which to redirect users who want to reset their password. </documentation> </annotation> </attribute> </complexType> </element> <simpleType name="OpenTelemetryProtocol"> <annotation> <documentation> The protocol used to deliver OpenTelemetry data. </documentation> </annotation> <restriction base="string"> <enumeration value="GRPC"> <annotation> <documentation> The data will be sent using gRPC. </documentation> </annotation> </enumeration> <enumeration value="HTTP"> <annotation> <documentation> The data will be sent using HTTP(s). </documentation> </annotation> </enumeration> </restriction> </simpleType> <element name="Logs"> <annotation> <documentation> Configuration information for OpenTelemetry logs. </documentation> </annotation> <complexType> <attribute name="Endpoint" use="required" type="anyURI"> <annotation> <documentation> The endpoint to which OTLP log data will be sent. </documentation> </annotation> </attribute> <attribute name="Protocol" use="required" type="c:OpenTelemetryProtocol"> <annotation> <documentation> The protocol used to send log data. </documentation> </annotation> </attribute> </complexType> </element> <element name="Metrics"> <annotation> <documentation> Configuration information for OpenTelemetry metrics. </documentation> </annotation> <complexType> <attribute name="Endpoint" use="required" type="anyURI"> <annotation> <documentation> The endpoint to which OTLP metrics data will be sent. </documentation> </annotation> </attribute> <attribute name="Protocol" use="required" type="c:OpenTelemetryProtocol"> <annotation> <documentation> The protocol used to send metrics data. </documentation> </annotation> </attribute> </complexType> </element> <element name="Traces"> <annotation> <documentation> Configuration information for OpenTelemetry traces. </documentation> </annotation> <complexType> <attribute name="Endpoint" use="required" type="anyURI"> <annotation> <documentation> The endpoint to which OTLP trace data will be sent. </documentation> </annotation> </attribute> <attribute name="Protocol" use="required" type="c:OpenTelemetryProtocol"> <annotation> <documentation> The protocol used to send trace data. </documentation> </annotation> </attribute> </complexType> </element> <element name="OpenTelemetry"> <annotation> <documentation> Configuration information for OpenTelemetry. </documentation> </annotation> <complexType> <sequence> <element ref="c:Logs" minOccurs="0" maxOccurs="1"/> <element ref="c:Metrics" minOccurs="0" maxOccurs="1"/> <element ref="c:Traces" minOccurs="0" maxOccurs="1"/> </sequence> <attribute name="LogicalServiceName" use="required" type="string"> <annotation> <documentation> The logical name of the service as it will appear in OpenTelemetry. </documentation> </annotation> </attribute> </complexType> </element> <element name="Database"> <annotation> <documentation> Configuration information for the database. </documentation> </annotation> <complexType> <attribute name="Kind" type="c:DatabaseKind" use="required"/> <attribute name="OwnerRoleName" use="required" type="string"> <annotation> <documentation> The name of the role that owns the database. This is used for the initial database setup, and for upgrades. </documentation> </annotation> </attribute> <attribute name="OwnerRolePassword" use="required" type="string"> <annotation> <documentation> The password of the role that owns the database. </documentation> </annotation> </attribute> <attribute name="WorkerRolePassword" use="required" type="string"> <annotation> <documentation> The password of the role used for normal database operation. This is an unprivileged role that does not have the ability to perform DDL or other database-changing operations. </documentation> </annotation> </attribute> <attribute name="ReaderRolePassword" use="optional" type="string"> <annotation> <documentation> The password of the role used for read-only database operation. If this attribute is not specified, the read-only role is not allowed to log in. </documentation> </annotation> </attribute> <attribute name="Address" type="string" use="required"> <annotation> <documentation> The address of the database. </documentation> </annotation> </attribute> <attribute name="Port" type="integer" use="required"> <annotation> <documentation> The port used to connect to the database. </documentation> </annotation> </attribute> <attribute name="Name" type="string" use="required"> <annotation> <documentation> The name of the database. </documentation> </annotation> </attribute> <attribute name="Create" type="boolean" use="required"> <annotation> <documentation> If set to true, the database and tables will be created if they do not already exist. </documentation> </annotation> </attribute> <attribute name="Upgrade" type="boolean" use="required"> <annotation> <documentation> If set to true, the database and tables will be upgraded to the latest supported schema version. </documentation> </annotation> </attribute> <attribute name="Language" type="string" use="required"> <annotation> <documentation> The language used for database search indexes (such as 'english'). See https://www.postgresql.org/docs/current/locale.html. </documentation> </annotation> </attribute> <attribute name="MinimumPoolConnections" use="optional" default="1" type="unsignedInt"> <annotation> <documentation> The minimum number of connections to keep idle in the database connection pool. </documentation> </annotation> </attribute> <attribute name="MaximumPoolConnections" use="optional" default="10" type="unsignedInt"> <annotation> <documentation> The maximum number of connections to allow in the database connection pool. When this number of connections is active in the pool, the application will be forced to wait until a connection becomes idle upon requesting another connection. </documentation> </annotation> </attribute> </complexType> </element> <complexType name="HTTPService"> <sequence minOccurs="1" maxOccurs="1"> <group ref="ct:TLSGroup"/> </sequence> <attribute name="ListenAddress" type="string" use="required"> <annotation> <documentation> The address upon which this HTTP service will listen. </documentation> </annotation> </attribute> <attribute name="ListenPort" type="integer" use="required"> <annotation> <documentation> The port upon which this HTTP service will listen. </documentation> </annotation> </attribute> <attribute name="ExternalAddress" type="anyURI" use="required"> <annotation> <documentation> The address by which this service is accessible to the outside world. The service will typically be configured behind a reverse proxy to provide TLS. </documentation> </annotation> </attribute> <attribute name="SessionExpiration" type="duration" use="optional"> <annotation> <documentation> The expiration time for sessions. </documentation> </annotation> </attribute> </complexType> <element name="InventoryService" type="c:HTTPService"> <annotation> <documentation> Configuration for the Inventory API service. </documentation> </annotation> </element> <element name="Limits"> <annotation> <documentation> Configuration for various limits. </documentation> </annotation> <complexType> <attribute name="MaximumFileUploadSizeOctets" type="unsignedLong" use="required"> <annotation> <documentation> The maximum permitted size of uploaded files (in octets). </documentation> </annotation> </attribute> <attribute name="MaximumCommandSizeOctets" type="unsignedLong" use="required"> <annotation> <documentation> The maximum permitted size of ordinary commands (in octets). </documentation> </annotation> </attribute> </complexType> </element> <element name="Maintenance"> <annotation> <documentation> Configuration for the server's periodic maintenance tasks. </documentation> </annotation> <complexType> <attribute name="TLSReloadInterval" type="duration" use="optional"> <annotation> <documentation> The interval at which TLS contexts will be reloaded. If not specified, TLS contexts will not be reloaded. </documentation> </annotation> </attribute> </complexType> </element> <element name="Configuration"> <annotation> <documentation> The top-level configuration element. </documentation> </annotation> <complexType> <sequence> <element ref="c:InventoryService"/> <element ref="c:Database"/> <element ref="c:Idstore"/> <element ref="c:Limits"/> <element ref="c:Maintenance"/> <element ref="c:OpenTelemetry" minOccurs="0" maxOccurs="1"/> </sequence> </complexType> </element> </schema>
<?xml version="1.0" encoding="UTF-8" ?> <!-- Copyright © 2023 Mark Raynsford <code@io7m.com> https://www.io7m.com Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="com.io7m.cardant:tls:1" xmlns:nt="com.io7m.cardant:tls:1"> <xsd:complexType name="StoreType" abstract="true"> <xsd:attribute name="Type" type="xsd:string" use="required"/> <xsd:attribute name="Provider" type="xsd:string" use="required"/> <xsd:attribute name="Password" type="xsd:string" use="required"/> <xsd:attribute name="File" type="xsd:string" use="required"/> </xsd:complexType> <xsd:complexType name="KeyStoreType"> <xsd:complexContent> <xsd:extension base="nt:StoreType"/> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="TrustStoreType"> <xsd:complexContent> <xsd:extension base="nt:StoreType"/> </xsd:complexContent> </xsd:complexType> <xsd:element name="KeyStore" type="nt:KeyStoreType"/> <xsd:element name="TrustStore" type="nt:TrustStoreType"/> <xsd:complexType name="TLSType" abstract="true"/> <xsd:complexType name="TLSDisabledType"> <xsd:complexContent> <xsd:extension base="nt:TLSType"/> </xsd:complexContent> </xsd:complexType> <xsd:element name="TLSDisabled" type="nt:TLSDisabledType"/> <xsd:complexType name="TLSEnabledType"> <xsd:complexContent> <xsd:extension base="nt:TLSType"> <xsd:sequence> <xsd:element ref="nt:KeyStore"/> <xsd:element ref="nt:TrustStore"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TLSEnabled" type="nt:TLSEnabledType"/> <xsd:group name="TLSGroup"> <xsd:choice> <xsd:element ref="nt:TLSDisabled"/> <xsd:element ref="nt:TLSEnabled"/> </xsd:choice> </xsd:group> </xsd:schema>
Name | Description |
---|---|
Integral | A type used to express integer values. |
Real | A type used to express real/fractional values. |
Monetary | A type used to express monetary values. All values include an associated currency unit. |
Time | A type used to express timestamp values. All values include a time zone value. |
Text | A type used to express plain string values. |
type StockReposit = | CAStockRepositRemove CAStockInstanceID | CAStockRepositSerialIntroduce CAStockInstanceID CAItemID CALocationID CAItemSerial | CAStockRepositSerialMove CAStockInstanceID CALocationID | CAStockRepositSerialNumberAdd CAStockInstanceID CAItemSerial | CAStockRepositSerialNumberRemove CAStockInstanceID CAItemSerial | CAStockRepositSetAdd CAStockInstanceID Long | CAStockRepositSetIntroduce CAStockInstanceID CAItemID CALocationID Long | CAStockRepositSetMove CAStockInstanceID CAStockInstanceID CALocationID Long | CAStockRepositSetRemove CAStockInstanceID Long
Name | Description |
---|---|
inventory.files.writer | A writer of inventory files. |
inventory.files.reader | A reader of inventory files. |
inventory.items.writer | A writer of inventory items. |
inventory.items.reader | A reader of inventory items. |
inventory.locations.writer | A writer of inventory locations. |
inventory.locations.reader | A reader of inventory locations. |
audit.reader | A reader of the audit log. |
inventory.admin | An all-powerful administrator of inventories. |
Name | Description |
---|---|
cardant_up | A gauge that displays a constant 1 value while the server is up. |
cardant_http_time | A gauge that logs the time each HTTP request has taken in nanoseconds. |
cardant_http_requests | A counter that is incremented every time an HTTP request is handled. |
cardant_http_requests_size | A counter that is incremented with the size of every HTTP request. |
cardant_http_responses_size | A counter that is incremented with the size of every produced HTTP response. |
cardant_http_responses_2xx | A counter that is incremented with every HTTP response that produces a 2xx status code. |
cardant_http_responses_4xx | A counter that is incremented with every HTTP response that produces a 4xx status code. A 4xx status code should be understood to mean "blame the client". |
cardant_http_responses_5xx | A counter that is incremented with every HTTP response that produces a 5xx status code. A 5xx status code should be understood to mean "blame the server". |
cardant_sessions | A gauge that displays the number of currently active user sessions. |
cardant: usage: cardant [command] [arguments ...] The cardant server command-line application. Use the "help" command to examine specific commands: $ cardant help help. Command-line arguments can be placed one per line into a file, and the file can be referenced using the @ symbol: $ echo help > file.txt $ echo help >> file.txt $ cardant @file.txt Commands: help Show usage information for a command. initialize Initialize the server and database. server Start the server. shell Start the shell. version Show the application version. Documentation: https://www.io7m.com/software/cardant/
$ cardant server --configuration server.conf $ (cat <<EOF --configuration server.conf EOF ) > args.txt $ cardant @args.txt
Attribute | Value |
---|---|
Name | --admin-id |
Type | com.io7m.cardant.model.CAUserID |
Default Value | |
Cardinality | [1, 1] |
Description | The ID of the user that will be the initial administrator. |
Attribute | Value |
---|---|
Name | --admin-name |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The name of the user that will be the initial administrator. |
Attribute | Value |
---|---|
Name | --configuration |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [1, 1] |
Description | The configuration file. |
Attribute | Value |
---|---|
Name | --verbose |
Type | com.io7m.quarrel.ext.logback.QLogLevel |
Default Value | info |
Cardinality | [1, 1] |
Description | Set the logging level of the application. |
$ cardant initialize \ --admin-id '92f83bce-3973-4db8-8aaf-d401443a9772' \ --admin-name 'someone' \ --configuration server.conf
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The package name. |
Attribute | Value |
---|---|
Name | --output |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [0, 1] |
Description | The output file. |
Attribute | Value |
---|---|
Name | --version |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The package version. |
$ cardant package get --name cardant.product --version 1.0.0 <?xml version="1.0" encoding="UTF-8" ?> <Package xmlns="com.io7m.cardant:type_packages:1"> <PackageInfo Name="cardant.product" Version="1.0.0" Description="Manufactured products."/> <TypeScalarText Name="manufacturer" ... $ cardant package get --name cardant.product --version 1.0.0 --output out.xml
$ cardant package list # Package Version cardant.product 1.0.0-SNAPSHOT
Attribute | Value |
---|---|
Name | --configuration |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [1, 1] |
Description | The configuration file. |
Attribute | Value |
---|---|
Name | --verbose |
Type | com.io7m.quarrel.ext.logback.QLogLevel |
Default Value | info |
Cardinality | [1, 1] |
Description | Set the logging level of the application. |
$ cardant server --configuration server.conf info: [localhost/<unresolved>:30000] Inventory API server started
Attribute | Value |
---|---|
Name | --verbose |
Type | com.io7m.quarrel.ext.logback.QLogLevel |
Default Value | info |
Cardinality | [1, 1] |
Description | Set the logging level of the application. |
$ cardant shell [cardant]# version com.io7m.cardant 0.0.1-SNAPSHOT 20af71248a7784b0e5247eab4b1ebd28de284739
cardant: usage: version Show the application version. The command does not accept any named arguments. The command does not accept any positional arguments. The version command produces the following output, in order: * The application ID (such as "com.io7m.quarrel") * The application version (such as "1.2.0") * The application build (such as "eacd59a2") For example, for a hypothetical application named "quarrel": $ quarrel version com.io7m.quarrel 1.2.0 eacd59a2
Name | Description |
---|---|
PRETTY | Provides pretty Unicode tables. |
RAW | Provides raw tables. |
[cardant]$ set --formatter PRETTY [cardant]$ audit-search-begin Search results: Page 1 of 1 ┌────┬──────────────────────────────────────┬────────────────┬─────────────────────────────┬─────────────────────────────────────────────────────────────────────────┐ │ ID │ Owner │ Type │ Time │ Data │ ├────┼──────────────────────────────────────┼────────────────┼─────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤ │ 1 │ c5574d46-7413-43c8-b6db-31001c382ca3 │ USER_LOGGED_IN │ 2023-12-21T11:30:11.171839Z │ {UserAgent=com.io7m.cardant.client/0.0.1-SNAPSHOT, Host=10.1.6.1:53236} │ └────┴──────────────────────────────────────┴────────────────┴─────────────────────────────┴─────────────────────────────────────────────────────────────────────────┘ [cardant]$ set --formatter RAW [cardant]$ audit-search-begin # Search results: Page 1 of 1 #-------------------------------- 1 c5574d46-7413-43c8-b6db-31001c382ca3 USER_LOGGED_IN 2023-12-21T11:30:11.171839Z {UserAgent=com.io7m.cardant.client/0.0.1-SNAPSHOT, Host=10.1.6.1:53236}
[cardant]$ bookmark-put --user example --password F7B7D37C620C70BF03353148582AC97D --hostname 10.1.6.1 --name local0 [cardant]$ bookmark-list ┌─────────────────┬─────────────────────────┬───────┬───────┬──────────────────┐ │ Name │ Host │ Port │ TLS │ User │ ├─────────────────┼─────────────────────────┼───────┼───────┼──────────────────┤ │ local0 │ 10.1.6.1 │ 30000 │ false │ example │ └─────────────────┴─────────────────────────┴───────┴───────┴──────────────────┘ [cardant]$ bookmark-login --name local0 [cardant]$ self User ID: c5574d46-7413-43c8-b6db-31001c382ca3 ┌────────────────────────────────────────────────────────────────────────────────┐ │ Role │ ├────────────────────────────────────────────────────────────────────────────────┤ │ audit.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.admin │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.files.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.files.writer │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.items.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.items.writer │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.locations.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.locations.writer │ └────────────────────────────────────────────────────────────────────────────────┘
match_name_evaluate with-any-name n ⇒ true match_name_evaluate (with-name-equal-to m) n ⇒ n = m match_name_evaluate (with-name-not-equal-to m) n ⇒ n ≠ m match_name_evaluate (with-name-similar-to m) n ⇒ n ≃ m match_name_evaluate (with-name-not-similar-to m) n ⇒ not (n ≃ m)
match_name ::= "with-any-name" | "(" "with-name-equal-to" <name> ")" | "(" "with-name-not-equal-to" <name> ")" | "(" "with-name-similar-to" <string> ")" | "(" "with-name-not-similar-to" <string> ")" ;
match_name_evaluate with-any-type s ⇒ true match_name_evaluate (with-types-to t) s ⇒ s = t match_name_evaluate (with-types-not-equal-to t) s ⇒ s ≠ t match_name_evaluate (with-types-superset-of t) s ⇒ s ⊆ t match_name_evaluate (with-types-subset-of t) s ⇒ s ⊇ t match_name_evaluate (with-types-overlapping t) s ⇒ ∃ e. e ∈ t ∧ e ∈ s
match_type ::= "with-any-type" | "(" "with-types-equal-to" <type-record-identifier> [<type-record-identifier>, ...] ")" | "(" "with-types-not-equal-to" <type-record-identifier> [<type-record-identifier>, ...] ")" | "(" "with-types-superset-of" <type-record-identifier> [<type-record-identifier>, ...] ")" | "(" "with-types-subset-of" <type-record-identifier> [<type-record-identifier>, ...] ")" | "(" "with-types-overlapping" <type-record-identifier> [<type-record-identifier>, ...] ")" ;
match_description_evaluate with-any-description n ⇒ true match_description_evaluate (with-description-equal-to m) n ⇒ n = m match_description_evaluate (with-description-not-equal-to m) n ⇒ n ≠ m match_description_evaluate (with-description-similar-to m) n ⇒ n ≃ m match_description_evaluate (with-description-not-similar-to m) n ⇒ not (n ≃ m)
match_description ::= "with-any-description" | "(" "with-description-equal-to" <description> ")" | "(" "with-description-not-equal-to" <description> ")" | "(" "with-description-similar-to" <string> ")" | "(" "with-description-not-similar-to" <string> ")" ;
match_mediatype_evaluate with-any-mediatype n ⇒ true match_mediatype_evaluate (with-mediatype-equal-to m) n ⇒ n = m match_mediatype_evaluate (with-mediatype-not-equal-to m) n ⇒ n ≠ m match_mediatype_evaluate (with-mediatype-similar-to m) n ⇒ n ≃ m match_mediatype_evaluate (with-mediatype-not-similar-to m) n ⇒ not (n ≃ m)
match_mediatype ::= "with-any-mediatype" | "(" "with-mediatype-equal-to" <mediatype> ")" | "(" "with-mediatype-not-equal-to" <mediatype> ")" | "(" "with-mediatype-similar-to" <string> ")" | "(" "with-mediatype-not-similar-to" <string> ")" ;
match_serial_evaluate with-any-serial n ⇒ true match_serial_evaluate (with-serial-equal-to m) n ⇒ n = m match_serial_evaluate (with-serial-not-equal-to m) n ⇒ n ≠ m
match_serial ::= "with-any-serial" | "(" "with-serial-equal-to" <serial> ")" | "(" "with-serial-not-equal-to" <serial> ")" ;
match_package_evaluate with-any-package n ⇒ true match_package_evaluate (with-package-equal-to m) n ⇒ n = m match_package_evaluate (with-package-not-equal-to m) n ⇒ n ≠ m
match_package ::= "with-any-package" | "(" "with-package-equal-to" <package> ")" | "(" "with-package-not-equal-to" <package> ")" ;
match_field_evaluate with-any-field n ⇒ true match_field_evaluate (with-field-equal-to m) n ⇒ n = m match_field_evaluate (with-field-not-equal-to m) n ⇒ n ≠ m
match_field ::= "with-any-field" | "(" "with-field-equal-to" <type-record-field-identifier> ")" | "(" "with-field-not-equal-to" <type-record-field-identifier> ")" ;
Attribute | Value |
---|---|
Name | --limit |
Type | java.lang.Integer |
Default Value | 10 |
Cardinality | [1, 1] |
Description | The maximum number of results per page. |
Attribute | Value |
---|---|
Name | --time-from |
Type | java.time.OffsetDateTime |
Default Value | 1970-01-01T00:00Z |
Cardinality | [1, 1] |
Description | Return audit events later than this date. |
Attribute | Value |
---|---|
Name | --time-to |
Type | java.time.OffsetDateTime |
Default Value | +101970-01-01T00:00Z |
Cardinality | [1, 1] |
Description | Return audit events earlier than this date. |
Attribute | Value |
---|---|
Name | --type-equal-to |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | Filter events by type. |
Attribute | Value |
---|---|
Name | --type-not-equal-to |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | Filter events by type. |
Attribute | Value |
---|---|
Name | --user |
Type | com.io7m.cardant.model.CAUserID |
Default Value | |
Cardinality | [0, 1] |
Description | Filter events by user. |
$ audit-search-begin Search results: Page 1 of 1 ┌────┬──────────────────────────────────────┬────────────────┬─────────────────────────────┬─────────────────────────────────────────────────────────────────────────┐ │ ID │ Owner │ Type │ Time │ Data │ ├────┼──────────────────────────────────────┼────────────────┼─────────────────────────────┼─────────────────────────────────────────────────────────────────────────┤ │ 1 │ c5574d46-7413-43c8-b6db-31001c382ca3 │ USER_LOGGED_IN │ 2023-12-21T11:30:11.171839Z │ {UserAgent=com.io7m.cardant.client/0.0.1-SNAPSHOT, Host=10.1.6.1:53236} │ └────┴──────────────────────────────────────┴────────────────┴─────────────────────────────┴─────────────────────────────────────────────────────────────────────────┘
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | The name of the bookmark. |
Attribute | Value |
---|---|
Name | --hostname |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The hostname of the server. |
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The name of the bookmark. |
Attribute | Value |
---|---|
Name | --password |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The password for the server. |
Attribute | Value |
---|---|
Name | --port |
Type | java.lang.Integer |
Default Value | 30000 |
Cardinality | [1, 1] |
Description | The port used for the server. |
Attribute | Value |
---|---|
Name | --tls |
Type | java.lang.Boolean |
Default Value | false |
Cardinality | [1, 1] |
Description | Whether to use TLS to connect to the server. |
Attribute | Value |
---|---|
Name | --user |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The username for the server. |
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The name of the bookmark. |
Attribute | Value |
---|---|
Name | --download-to |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [0, 1] |
Description | If specified, the file will be downloaded to this path. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --content-type |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | The content type (inferred if not specified). |
Attribute | Value |
---|---|
Name | --description |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | The file description. |
Attribute | Value |
---|---|
Name | --file |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [1, 1] |
Description | The file. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --description-match |
Type | com.io7m.cardant.model.CADescriptionMatch |
Default Value | with-any-description |
Cardinality | [1, 1] |
Description | Only include files that have descriptions matching the given expression. |
Attribute | Value |
---|---|
Name | --limit |
Type | java.lang.Long |
Default Value | 100 |
Cardinality | [1, 1] |
Description | The maximum number of results per page. |
Attribute | Value |
---|---|
Name | --mediatype-match |
Type | com.io7m.cardant.model.CAMediaTypeMatch |
Default Value | with-any-mediatype |
Cardinality | [1, 1] |
Description | Only include files that have media types matching the given expression. |
Attribute | Value |
---|---|
Name | --size-maximum |
Type | java.lang.Long |
Default Value | 9223372036854775807 |
Cardinality | [1, 1] |
Description | The maximum file size. |
Attribute | Value |
---|---|
Name | --size-minimum |
Type | java.lang.Long |
Default Value | 0 |
Cardinality | [1, 1] |
Description | The minimum file size. |
[cardant]$ help file-put cardant: usage: file-put [named-arguments ...] Upload a file. Named parameters: --content-type Description : The content type (inferred if not specified). Type : String Cardinality : [0, 1]; Specify at most once. Syntax : <any sequence of characters> --description Description : The file description. Type : String Cardinality : [0, 1]; Specify at most once. Syntax : <any sequence of characters> * --file Description : The file. Type : Path Cardinality : [1]; Specify exactly once. Syntax : <platform-specific path syntax> * --id Description : The file ID. Type : CAFileID Cardinality : [1]; Specify exactly once. Syntax : [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} The command does not accept any positional arguments.
Attribute | Value |
---|---|
Name | --file-id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --relation |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The attachment relation. |
Attribute | Value |
---|---|
Name | --file-id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --relation |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The attachment relation. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [0, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The item name. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --metadata |
Type | com.io7m.cardant.model.CAMetadataType |
Default Value | [] |
Cardinality | [0, N] |
Description | The metadata key. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --key |
Type | com.io7m.cardant.model.CATypeRecordFieldIdentifier |
Default Value | [] |
Cardinality | [1, N] |
Description | The metadata key. |
Attribute | Value |
---|---|
Name | --description-match |
Type | com.io7m.cardant.model.CADescriptionMatch |
Default Value | with-any-description |
Cardinality | [1, 1] |
Description | Only include items that have descriptions matching the given expression. |
Attribute | Value |
---|---|
Name | --limit |
Type | java.lang.Integer |
Default Value | 100 |
Cardinality | [1, 1] |
Description | The maximum number of results per page. |
Attribute | Value |
---|---|
Name | --location-match |
Type | com.io7m.cardant.model.CALocationMatchType |
Default Value | any-location |
Cardinality | [1, 1] |
Description | Only include items in locations matching the given expression. |
Attribute | Value |
---|---|
Name | --metadata-match |
Type | com.io7m.cardant.model.CAMetadataElementMatchType |
Default Value | anything |
Cardinality | [1, 1] |
Description | Only include items with metadata matching the given expression. |
Attribute | Value |
---|---|
Name | --name-match |
Type | com.io7m.cardant.model.CANameMatchFuzzy |
Default Value | with-any-name |
Cardinality | [1, 1] |
Description | Only include items that have names matching the given expression. |
Attribute | Value |
---|---|
Name | --serial-match |
Type | com.io7m.cardant.model.CAItemSerialMatch |
Default Value | with-any-serial |
Cardinality | [1, 1] |
Description | Only include items with serial numbers matching the given expression. |
Attribute | Value |
---|---|
Name | --type-match |
Type | com.io7m.cardant.model.CATypeMatch |
Default Value | with-any-type |
Cardinality | [1, 1] |
Description | Only include items that have types matching the given expression. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --type |
Type | com.io7m.cardant.model.CATypeRecordIdentifier |
Default Value | [] |
Cardinality | [0, N] |
Description | The item types. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --type |
Type | com.io7m.cardant.model.CATypeRecordIdentifier |
Default Value | [] |
Cardinality | [0, N] |
Description | The item types. |
Attribute | Value |
---|---|
Name | --file-id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The location ID. |
Attribute | Value |
---|---|
Name | --relation |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The attachment relation. |
Attribute | Value |
---|---|
Name | --file-id |
Type | com.io7m.cardant.model.CAFileID |
Default Value | |
Cardinality | [1, 1] |
Description | The file ID. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The location ID. |
Attribute | Value |
---|---|
Name | --relation |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The attachment relation. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The location ID. |
Attribute | Value |
---|---|
Name | --detach |
Type | java.lang.Boolean |
Default Value | |
Cardinality | [0, 1] |
Description | Detach the location from its parent. |
Attribute | Value |
---|---|
Name | --id |
Type | com.io7m.cardant.model.CALocationID |
Default Value | d37d0dd8-8f98-4f55-80f7-752471271bb3 |
Cardinality | [1, 1] |
Description | The location ID. |
Attribute | Value |
---|---|
Name | --name |
Type | java.lang.String |
Default Value | |
Cardinality | [0, 1] |
Description | The location name. |
Attribute | Value |
---|---|
Name | --parent |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [0, 1] |
Description | The parent location ID. |
Attribute | Value |
---|---|
Name | --role |
Type | com.io7m.medrina.api.MRoleName |
Default Value | [] |
Cardinality | [0, N] |
Description | The role name. |
Attribute | Value |
---|---|
Name | --user |
Type | com.io7m.cardant.model.CAUserID |
Default Value | |
Cardinality | [1, 1] |
Description | The user ID. |
Attribute | Value |
---|---|
Name | --user |
Type | com.io7m.cardant.model.CAUserID |
Default Value | |
Cardinality | [1, 1] |
Description | The user ID. |
Attribute | Value |
---|---|
Name | --role |
Type | com.io7m.medrina.api.MRoleName |
Default Value | [] |
Cardinality | [0, N] |
Description | The role name. |
Attribute | Value |
---|---|
Name | --user |
Type | com.io7m.cardant.model.CAUserID |
Default Value | |
Cardinality | [1, 1] |
Description | The user ID. |
[cardant]$ self User ID: c5574d46-7413-43c8-b6db-31001c382ca3 ┌────────────────────────────────────────────────────────────────────────────────┐ │ Role │ ├────────────────────────────────────────────────────────────────────────────────┤ │ audit.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.admin │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.files.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.files.writer │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.items.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.items.writer │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.locations.reader │ ├────────────────────────────────────────────────────────────────────────────────┤ │ inventory.locations.writer │ └────────────────────────────────────────────────────────────────────────────────┘
Attribute | Value |
---|---|
Name | --formatter |
Type | com.io7m.cardant.shell.internal.CAShellCmdSet.Formatter |
Default Value | |
Cardinality | [0, 1] |
Description | Set the shell formatter. |
Attribute | Value |
---|---|
Name | --terminate-on-errors |
Type | java.lang.Boolean |
Default Value | |
Cardinality | [0, 1] |
Description | Terminate execution on the first command that returns an error. |
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
[cardant]$ stock-reposit-remove --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
Attribute | Value |
---|---|
Name | --item |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --location |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The location ID. |
Attribute | Value |
---|---|
Name | --serial |
Type | com.io7m.cardant.model.CAItemSerial |
Default Value | |
Cardinality | [1, 1] |
Description | The item serial number. |
[cardant]$ stock-reposit-serial-introduce \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --item 98725a33-5202-4143-820e-75b60a1df4d3 \ --location 2bbc8132-cae3-4d51-95a0-0ab5318b3745 \ --serial manufacturer_serial:91FA61CC
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
Attribute | Value |
---|---|
Name | --location-to |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The destination location ID. |
[cardant]$ stock-reposit-serial-move \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --location-to 2bbc8132-cae3-4d51-95a0-0ab5318b3745
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
Attribute | Value |
---|---|
Name | --serial |
Type | com.io7m.cardant.model.CAItemSerial |
Default Value | |
Cardinality | [1, 1] |
Description | The item serial number. |
[cardant]$ stock-reposit-serial-number-add \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --serial manufacturer_serial:33CBE10A
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
Attribute | Value |
---|---|
Name | --serial |
Type | com.io7m.cardant.model.CAItemSerial |
Default Value | |
Cardinality | [1, 1] |
Description | The item serial number. |
[cardant]$ stock-reposit-serial-number-remove \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --serial manufacturer_serial:33CBE10A
Attribute | Value |
---|---|
Name | --count |
Type | java.lang.Long |
Default Value | |
Cardinality | [1, 1] |
Description | The number of instances of the item to add. |
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
[cardant]$ stock-reposit-set-add \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --count 100
Attribute | Value |
---|---|
Name | --count |
Type | java.lang.Long |
Default Value | |
Cardinality | [1, 1] |
Description | The number of instances of the item to introduce. |
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
Attribute | Value |
---|---|
Name | --item |
Type | com.io7m.cardant.model.CAItemID |
Default Value | |
Cardinality | [1, 1] |
Description | The item ID. |
Attribute | Value |
---|---|
Name | --location |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The location ID. |
[cardant]$ stock-reposit-set-introduce \ --instance 3cb641ac-182f-4f44-98f6-a3e0fe752297 \ --location 55311cea-052f-4f72-9e34-bc01d0e43fee \ --item 102c2df9-bbb4-4e5d-948f-0d8620704b97 \ --count 100
Attribute | Value |
---|---|
Name | --count |
Type | java.lang.Long |
Default Value | |
Cardinality | [1, 1] |
Description | The number of instances of the item to remove. |
Attribute | Value |
---|---|
Name | --instance-from |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The source stock instance ID. |
Attribute | Value |
---|---|
Name | --instance-to |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The target stock instance ID. |
Attribute | Value |
---|---|
Name | --location-to |
Type | com.io7m.cardant.model.CALocationID |
Default Value | |
Cardinality | [1, 1] |
Description | The destination location ID. |
[cardant]$ stock-reposit-set-move \ --instance-from 0b041ff1-4bbe-4265-b0f2-51f0c5ff6757 \ --instance-to d7c18055-cadb-4701-aa3d-9207711f6c8a --location-to 55311cea-052f-4f72-9e34-bc01d0e43fee \ --count 50
Attribute | Value |
---|---|
Name | --count |
Type | java.lang.Long |
Default Value | |
Cardinality | [1, 1] |
Description | The number of instances of the item to remove. |
Attribute | Value |
---|---|
Name | --instance |
Type | com.io7m.cardant.model.CAStockInstanceID |
Default Value | |
Cardinality | [1, 1] |
Description | The stock instance ID. |
[cardant]$ stock-reposit-set-remove \ --instance 0b041ff1-4bbe-4265-b0f2-51f0c5ff6757 \ --count 50
Attribute | Value |
---|---|
Name | --exclude-stock-kind |
Type | com.io7m.cardant.model.CAStockOccurrenceKind |
Default Value | [] |
Cardinality | [0, N] |
Description | Exclude stock occurrences of the given kinds. |
Attribute | Value |
---|---|
Name | --item-match |
Type | com.io7m.cardant.model.CAItemIDMatch |
Default Value | with-any-item |
Cardinality | [1, 1] |
Description | Only include items with IDs matching the given expression. |
Attribute | Value |
---|---|
Name | --limit |
Type | java.lang.Integer |
Default Value | 100 |
Cardinality | [1, 1] |
Description | The maximum number of results per page. |
Attribute | Value |
---|---|
Name | --location-match |
Type | com.io7m.cardant.model.CALocationMatchType |
Default Value | any-location |
Cardinality | [1, 1] |
Description | Only include stock in locations matching the given expression. |
[cardant]$ stock-search-begin
[cardant]$ stock-search-next
[cardant]$ stock-search-previous
[cardant]$ syntax-list ┌───────────────────────────────────────────────────────────────────────────────────┐ │ Name │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-equal-to │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-match │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-not-equal-to │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-not-similar-to │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-similar-to │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ description-with-any │ ├───────────────────────────────────────────────────────────────────────────────────┤ ...
[cardant]$ syntax-show --rule metadata-type-match metadata-type-match := metadata-type-any | metadata-type-equal-to | metadata-type-not-equal-to metadata-type-any := with-any-type metadata-type-equal-to := (with-type-equal-to <type>) metadata-type-not-equal-to := (with-type-not-equal-to <type>) [cardant]$ syntax-show --rule metadata-type-match --example true [with-type-equal-to "com.io7m:t"] [with-type-not-equal-to "com.io7m:t"]
Attribute | Value |
---|---|
Name | --example |
Type | java.lang.Boolean |
Default Value | false |
Cardinality | [1, 1] |
Description | Show a syntax example. |
Attribute | Value |
---|---|
Name | --rule |
Type | java.lang.String |
Default Value | |
Cardinality | [1, 1] |
Description | The syntax rule name. |
Attribute | Value |
---|---|
Name | --name |
Type | com.io7m.lanark.core.RDottedName |
Default Value | |
Cardinality | [1, 1] |
Description | The type package name. |
Attribute | Value |
---|---|
Name | --output |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [0, 1] |
Description | The output file. |
Attribute | Value |
---|---|
Name | --version |
Type | com.io7m.verona.core.Version |
Default Value | |
Cardinality | [1, 1] |
Description | The type package version. |
[cardant]$ type-package-get-text --name com.io7m.example --version 1.0.0 --output file.xml
Attribute | Value |
---|---|
Name | --file |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [1, 1] |
Description | The type package file. |
Attribute | Value |
---|---|
Name | --output |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [0, 1] |
Description | The output file. |
[cardant]$ type-package-schema <?xml version="1.0" encoding="UTF-8" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:p="com.io7m.cardant:type_packages:1" targetNamespace="com.io7m.cardant:type_packages:1"> <xsd:simpleType name="UnqualifiedNameType"> <xsd:annotation> ...
Attribute | Value |
---|---|
Name | --description-match |
Type | com.io7m.cardant.model.CADescriptionMatch |
Default Value | with-any-description |
Cardinality | [1, 1] |
Description | Only include types that have descriptions matching the given expression. |
Attribute | Value |
---|---|
Name | --limit |
Type | java.lang.Integer |
Default Value | 100 |
Cardinality | [1, 1] |
Description | The maximum number of results per page. |
Attribute | Value |
---|---|
Name | --behavior |
Type | com.io7m.cardant.model.type_package.CATypePackageTypeRemovalBehavior |
Default Value | TYPE_REMOVAL_FAIL_IF_TYPES_REFERENCED |
Cardinality | [1, 1] |
Description | The uninstall behavior. |
Attribute | Value |
---|---|
Name | --name |
Type | com.io7m.lanark.core.RDottedName |
Default Value | |
Cardinality | [1, 1] |
Description | The type package name. |
Attribute | Value |
---|---|
Name | --version |
Type | com.io7m.verona.core.Version |
Default Value | |
Cardinality | [1, 1] |
Description | The type package version. |
Attribute | Value |
---|---|
Name | --file |
Type | java.nio.file.Path |
Default Value | |
Cardinality | [1, 1] |
Description | The type package file. |
Attribute | Value |
---|---|
Name | --type-removal-behavior |
Type | com.io7m.cardant.model.type_package.CATypePackageTypeRemovalBehavior |
Default Value | TYPE_REMOVAL_FAIL_IF_TYPES_REFERENCED |
Cardinality | [1, 1] |
Description | The type removal behavior. |
Attribute | Value |
---|---|
Name | --version-behavior |
Type | com.io7m.cardant.model.type_package.CATypePackageVersionBehavior |
Default Value | VERSION_DISALLOW_DOWNGRADES |
Cardinality | [1, 1] |
Description | The version behavior. |
$ curl https://cardant.example.com:30000/ | hexdump 0000:0000 00 00 00 01 00 00 00 01 8e e2 31 58 f8 db 31 7a |..........1X..1z| 0000:0010 a5 8b 45 bd 9d 70 20 40 00 00 00 01 00 00 00 00 |..E..p @........| 0000:0020 00 00 00 0f 2f 69 6e 76 65 6e 74 6f 72 79 2f 31 |..../inventory/1| 0000:0030 2f 30 2f |/0/|
; ; Copyright © 2023 Mark Raynsford <code@io7m.com> https://www.io7m.com ; ; Permission to use, copy, modify, and/or distribute this software for any ; purpose with or without fee is hereby granted, provided that the above ; copyright notice and this permission notice appear in all copies. ; ; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ; WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ; MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY ; SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ; WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ; ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR ; IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ; [language cedarbridge 1 0] [package com.io7m.cardant.protocol.inventory.cb] [import com.io7m.cedarbridge cb] [import com.io7m.cedarbridge.time ct] [variant CAI1ComparisonExact [parameter T] [case Anything] [case IsEqualTo [field value T]] [case IsNotEqualTo [field value T]] ] [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]] ] [variant CAI1ComparisonSet [parameter T] [case Anything] [case IsEqualTo [field value [cb:List T]]] [case IsNotEqualTo [field value [cb:List T]]] [case IsSubsetOf [field value [cb:List T]]] [case IsSupersetOf [field value [cb:List T]]] [case IsOverlapping [field value [cb:List T]]] ] [documentation CAI1Id "An identifier value."] [variant CAI1Id [case CAI1FileID [field id cb:UUID]] [case CAI1ItemID [field id cb:UUID]] [case CAI1LocationID [field id cb:UUID]] [case CAI1UserID [field id cb:UUID]] [case CAI1StockInstanceID [field id cb:UUID]] ] [documentation CAI1ItemSerial "A serial number."] [record CAI1ItemSerial [field type cb:String] [field value cb:String]] [documentation CAI1IncludeDeleted "Include deleted data in search results."] [variant CAI1IncludeDeleted [documentation IncludeOnlyLive "Include only live data."] [case IncludeOnlyLive] [documentation IncludeOnlyDeleted "Include only deleted data."] [case IncludeOnlyDeleted] [documentation IncludeLiveAndDeleted "Include both live and deleted data."] [case IncludeLiveAndDeleted] ] [documentation CAI1File "A file."] [variant CAI1File [case CAI1FileWithoutData [documentation id "The file ID."] [field id cb:UUID] [documentation description "The file description."] [field description cb:String] [documentation mediaType "The media type."] [field mediaType cb:String] [documentation size "The file size."] [field size cb:IntegerUnsigned64] [documentation hashAlgorithm "The hash algorithm name."] [field hashAlgorithm cb:String] [documentation hashValue "The hash value."] [field hashValue cb:String]] [case CAI1FileWithData [documentation id "The file ID."] [field id cb:UUID] [documentation description "The file description."] [field description cb:String] [documentation mediaType "The media type."] [field mediaType cb:String] [documentation size "The file size."] [field size cb:IntegerUnsigned64] [documentation hashAlgorithm "The hash algorithm name."] [field hashAlgorithm cb:String] [documentation hashValue "The hash value."] [field hashValue cb:String] [documentation data "The file data."] [field data cb:ByteArray]] ] [documentation CAI1Metadata "A metadata value."] [variant CAI1Metadata [case Integral [documentation key "The metadata value key."] [field key CAI1TypeRecordFieldIdentifier] [documentation value "The metadata value."] [field value cb:IntegerSigned64] ] [case Text [documentation key "The metadata value key."] [field key CAI1TypeRecordFieldIdentifier] [documentation value "The metadata value."] [field value cb:String] ] [case Time [documentation key "The metadata value key."] [field key CAI1TypeRecordFieldIdentifier] [documentation value "The metadata value."] [field value ct:OffsetDateTime] ] [case Monetary [documentation key "The metadata value key."] [field key CAI1TypeRecordFieldIdentifier] [documentation value "The metadata value."] [field value cb:String] [documentation currency "The metadata currency unit."] [field currency cb:String] ] [case Real [documentation key "The metadata value key."] [field key CAI1TypeRecordFieldIdentifier] [documentation value "The metadata value."] [field value cb:Float64] ] ] [documentation CAI1AttachmentKey "The values that uniquely identify an attachment on an object."] [record CAI1AttachmentKey [documentation id "The file ID."] [field id cb:UUID] [documentation relation "The relation."] [field relation cb:String] ] [documentation CAI1Attachment "An item attachment."] [record CAI1Attachment [documentation file "The file ID."] [field file CAI1File] [documentation relation "The relation."] [field relation cb:String] ] [documentation CAI1Item "An item."] [record CAI1Item [documentation id "The item ID."] [field id cb:UUID] [documentation name "The item name."] [field name cb:String] [documentation created "The creation time"] [field created ct:OffsetDateTime] [documentation updated "The updated time"] [field updated ct:OffsetDateTime] [documentation metadata "The item metadata."] [field metadata [cb:Map CAI1TypeRecordFieldIdentifier CAI1Metadata]] [documentation attachments "The item attachments."] [field attachments [cb:Map CAI1AttachmentKey CAI1Attachment]] [documentation types "The item types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1LocationMatch "The behaviour requested for matching locations."] [variant CAI1LocationMatch [documentation CAI1LocationExact "Only consider the exact given location."] [case CAI1LocationExact [field locationId cb:UUID]] [documentation CAI1LocationWithDescendants "Consider the given location and all descendants of the given location."] [case CAI1LocationWithDescendants [field locationId cb:UUID]] [documentation CAI1LocationAny "Consider all locations."] [case CAI1LocationAny] ] [documentation CAI1StockReposit "The type of item reposit operations."] [variant CAI1StockReposit [documentation CAI1StockRepositSetIntroduce "An operation that adds a set of items to a storage location."] [case CAI1StockRepositSetIntroduce [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation itemId "The item."] [field itemId cb:UUID] [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation count "The count."] [field count cb:IntegerUnsigned64] ] [documentation CAI1StockRepositSetAdd "An operation that adds a set of items to an instance."] [case CAI1StockRepositSetAdd [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation count "The count."] [field count cb:IntegerUnsigned64] ] [documentation CAI1StockRepositSetMove "An operation that moves a set of items from one storage location to another."] [case CAI1StockRepositSetMove [documentation instanceSource "The source instance."] [field instanceSource cb:UUID] [documentation instanceTarget "The target instance."] [field instanceTarget cb:UUID] [documentation locationTo "The target location."] [field locationTo cb:UUID] [documentation count "The count."] [field count cb:IntegerUnsigned64] ] [documentation CAI1StockRepositSetRemove "An operation that removes a set of items from a storage location."] [case CAI1StockRepositSetRemove [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation count "The count."] [field count cb:IntegerUnsigned64] ] [documentation CAI1StockRepositSerialIntroduce "An operation that adds a single identified item to a storage location."] [case CAI1StockRepositSerialIntroduce [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation itemId "The item."] [field itemId cb:UUID] [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation serial "The serial number."] [field serial CAI1ItemSerial] ] [documentation CAI1StockRepositSerialMove "An operation that moves a single identified item between storage locations."] [case CAI1StockRepositSerialMove [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation locationTo "The target location."] [field locationTo cb:UUID] ] [documentation CAI1StockRepositSerialRemove "An operation that removes a single identified item."] [case CAI1StockRepositSerialRemove [documentation instanceId "The instance."] [field instanceId cb:UUID] ] [documentation CAI1StockRepositSerialNumberAdd "An operation that adds a serial number to an instance."] [case CAI1StockRepositSerialNumberAdd [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation serial "The serial number."] [field serial CAI1ItemSerial] ] [documentation CAI1StockRepositSerialNumberRemove "An operation that removes a serial number from an instance."] [case CAI1StockRepositSerialNumberRemove [documentation instanceId "The instance."] [field instanceId cb:UUID] [documentation serial "The serial number."] [field serial CAI1ItemSerial] ] ] [documentation CAI1LocationSummary "A summary of a location."] [record CAI1LocationSummary [field id cb:UUID] [field parent [cb:Option cb:UUID]] [field path [cb:List cb:String]] [documentation created "The creation time"] [field created ct:OffsetDateTime] [documentation updated "The updated time"] [field updated ct:OffsetDateTime] ] [documentation CAI1Location "A location."] [record CAI1Location [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation parent "The location parent."] [field parent [cb:Option cb:UUID]] [documentation path "The location path."] [field path [cb:List cb:String]] [documentation created "The creation time"] [field created ct:OffsetDateTime] [documentation updated "The updated time"] [field updated ct:OffsetDateTime] [documentation metadata "The item metadata."] [field metadata [cb:Map CAI1TypeRecordFieldIdentifier CAI1Metadata]] [documentation attachments "The item attachments."] [field attachments [cb:Map CAI1AttachmentKey CAI1Attachment]] [documentation types "The item types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1ItemColumn "The item column by which to order results."] [variant CAI1ItemColumn [documentation CAI1ById "Order by item ID."] [case CAI1ById] [documentation CAI1ByName "Order by item name."] [case CAI1ByName] ] [documentation CAI1ItemColumnOrdering "The item column by which to order results."] [record CAI1ItemColumnOrdering [documentation column "The item column."] [field column CAI1ItemColumn] [documentation ascending "Whether results should be in ascending order."] [field ascending cb:Boolean] ] [documentation CAI1MetadataValueMatch "An expression against which item metadata values are matched."] [variant CAI1MetadataValueMatch [case Anything] [case IntegralWithinRange [field lower cb:IntegerSigned64] [field upper cb:IntegerSigned64] ] [case RealWithinRange [field lower cb:Float64] [field upper cb:Float64] ] [case TimeWithinRange [field lower ct:OffsetDateTime] [field upper ct:OffsetDateTime] ] [case MonetaryWithinRange [field lower cb:String] [field upper cb:String] ] [case MonetaryWithCurrency [field currency cb:String] ] [case TextExact [field exact cb:String] ] [case TextSearch [field search cb:String] ] ] [documentation 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 packageName [CAI1ComparisonExact cb:String]] [field typeName [CAI1ComparisonExact cb:String]] [field fieldName [CAI1ComparisonExact cb:String]] [field value CAI1MetadataValueMatch] ] ] [documentation CAI1ItemSearchParameters "The item search parameters."] [record CAI1ItemSearchParameters [documentation nameMatch "The item name match expression."] [field nameMatch [CAI1ComparisonFuzzy cb:String]] [documentation descriptionMatch "The item description match expression."] [field descriptionMatch [CAI1ComparisonFuzzy cb:String]] [documentation typeMatch "The item type match expression."] [field typeMatch [CAI1ComparisonSet CAI1TypeRecordIdentifier]] [documentation metaMatch "The item metadata match expression."] [field metaMatch CAI1MetadataElementMatch] [documentation includeDeleted "Include live/deleted data."] [field includeDeleted CAI1IncludeDeleted] [documentation order "The item result ordering."] [field order CAI1ItemColumnOrdering] [documentation limit "The item limit."] [field limit cb:IntegerUnsigned32] ] [documentation CAI1FileColumn "The item column by which to order results."] [variant CAI1FileColumn [documentation CAI1ById "Order by file ID."] [case CAI1ById] [documentation CAI1ByDescription "Order by file description."] [case CAI1ByDescription] ] [documentation CAI1FileColumnOrdering "The file column by which to order results."] [record CAI1FileColumnOrdering [documentation column "The file column."] [field column CAI1FileColumn] [documentation ascending "Whether results should be in ascending order."] [field ascending cb:Boolean] ] [documentation CAI1SizeRange "A size range."] [record CAI1SizeRange [documentation sizeMinimum "The lower bound (inclusive)."] [field sizeMinimum cb:IntegerUnsigned64] [documentation sizeMaximum "The upper bound (inclusive)."] [field sizeMaximum cb:IntegerUnsigned64] ] [documentation CAI1TimeRange "An inclusive time range."] [record CAI1TimeRange [field timeLower ct:OffsetDateTime] [field timeUpper ct:OffsetDateTime] ] [documentation CAI1FileSearchParameters "The file search parameters."] [record CAI1FileSearchParameters [documentation search "The file description search query."] [field search [CAI1ComparisonFuzzy cb:String]] [documentation mediaType "The file media type search query."] [field mediaType [CAI1ComparisonFuzzy cb:String]] [documentation sizeRange "The file size range query."] [field sizeRange CAI1SizeRange] [documentation order "The file result ordering."] [field order CAI1FileColumnOrdering] [documentation limit "The file limit."] [field limit cb:IntegerUnsigned32] ] [documentation CAI1TypeScalarSearchParameters "The scalar type search parameters."] [record CAI1TypeScalarSearchParameters [documentation nameSearch "The type description search query."] [field nameSearch [CAI1ComparisonFuzzy cb:String]] [documentation descriptionSearch "The type description search query."] [field descriptionSearch [CAI1ComparisonFuzzy cb:String]] [documentation limit "The limit."] [field limit cb:IntegerUnsigned32] ] [documentation CAI1Page "A page of search results."] [record CAI1Page [parameter T] [field items [cb:List T]] [field pageIndex cb:IntegerUnsigned32] [field pageCount cb:IntegerUnsigned32] [field pageFirstOffset cb:IntegerUnsigned64] ] [documentation CAI1ItemSummary "A summary of an item."] [record CAI1ItemSummary [field id cb:UUID] [field name cb:String] [documentation created "The creation time"] [field created ct:OffsetDateTime] [documentation updated "The updated time"] [field updated ct:OffsetDateTime] ] [record CAI1TypeRecordFieldIdentifier [field packageName cb:String] [field typeName cb:String] [field fieldName cb:String] ] [record CAI1TypeRecordIdentifier [field packageName cb:String] [field typeName cb:String] ] [record CAI1TypeScalarIdentifier [field packageName cb:String] [field typeName cb:String] ] [documentation CAI1TypeScalar "A scalar type."] [variant CAI1TypeScalar [case Integral [documentation name "The type name."] [field name CAI1TypeScalarIdentifier] [documentation description "The type description."] [field description cb:String] [field rangeLower cb:IntegerSigned64] [field rangeUpper cb:IntegerSigned64] ] [case Text [documentation name "The type name."] [field name CAI1TypeScalarIdentifier] [documentation description "The type description."] [field description cb:String] [field pattern cb:String] ] [case Time [documentation name "The type name."] [field name CAI1TypeScalarIdentifier] [documentation description "The type description."] [field description cb:String] [field rangeLower ct:OffsetDateTime] [field rangeUpper ct:OffsetDateTime] ] [case Monetary [documentation name "The type name."] [field name CAI1TypeScalarIdentifier] [documentation description "The type description."] [field description cb:String] [field rangeLower cb:String] [field rangeUpper cb:String] ] [case Real [documentation name "The type name."] [field name CAI1TypeScalarIdentifier] [documentation description "The type description."] [field description cb:String] [field rangeLower cb:Float64] [field rangeUpper cb:Float64] ] ] [documentation CAI1TypeField "A field within a type declaration."] [record CAI1TypeField [documentation name "The type field name."] [field name CAI1TypeRecordFieldIdentifier] [documentation description "The type field description."] [field description cb:String] [documentation type "The type of the field."] [field type CAI1TypeScalar] [documentation required "Whether or not the field is required to be present."] [field required cb:Boolean] ] [documentation CAI1TypeRecord "A type declaration."] [record CAI1TypeRecord [documentation name "The type declaration name."] [field name CAI1TypeRecordIdentifier] [documentation description "The type declaration description."] [field description cb:String] [documentation fields "Whether or not the field is required to be present."] [field fields [cb:Map CAI1TypeRecordFieldIdentifier CAI1TypeField]] ] [documentation CAI1TypeRecordSummary "A type declaration summary."] [record CAI1TypeRecordSummary [documentation name "The type declaration name."] [field name CAI1TypeRecordIdentifier] [documentation description "The type declaration description."] [field description cb:String] ] [documentation CAI1TypeRecordSearchParameters "The declared type search parameters."] [record CAI1TypeRecordSearchParameters [documentation nameSearch "The type description search query."] [field nameSearch [CAI1ComparisonFuzzy cb:String]] [documentation descriptionSearch "The type description search query."] [field descriptionSearch [CAI1ComparisonFuzzy cb:String]] [documentation limit "The limit."] [field limit cb:IntegerUnsigned32] ] [documentation CAI1AuditSearchParameters "The audit search parameters."] [record CAI1AuditSearchParameters [documentation owner "Limit to events with the given owner."] [field owner [cb:Option cb:UUID]] [documentation type "Limit to events with the given type."] [field type [CAI1ComparisonExact cb:String]] [documentation timeRange "Limit to events in the given time range."] [field timeRange CAI1TimeRange] [documentation pageSize "The page size."] [field pageSize cb:IntegerUnsigned32] ] [documentation CAI1AuditEvent "An audit event."] [record CAI1AuditEvent [documentation id "The event ID."] [field id cb:IntegerUnsigned64] [documentation time "The event time."] [field time ct:OffsetDateTime] [documentation owner "The event owner."] [field owner cb:UUID] [documentation type "The event type."] [field type cb:String] [documentation data "The event data."] [field data [cb:Map cb:String cb:String]] ] [documentation CAI1TypePackageSearchParameters "The type package search parameters."] [record CAI1TypePackageSearchParameters [documentation descriptionMatch "The type package description match expression."] [field descriptionMatch [CAI1ComparisonFuzzy cb:String]] [documentation limit "The item limit."] [field limit cb:IntegerUnsigned32] ] [documentation CAI1Version "A version number."] [record CAI1Version [documentation versionMajor "The major version."] [field versionMajor cb:IntegerUnsigned32] [documentation versionMinor "The minor version."] [field versionMinor cb:IntegerUnsigned32] [documentation versionPatch "The patch version."] [field versionPatch cb:IntegerUnsigned32] [documentation versionQualifier "The version qualifier."] [field versionQualifier [cb:Option cb:String]] ] [documentation CAI1TypePackageIdentifier "The type package identifier."] [record CAI1TypePackageIdentifier [documentation name "The package name."] [field name cb:String] [documentation version "The package version."] [field version CAI1Version] ] [documentation CAI1TypePackageSummary "The type package summary."] [record CAI1TypePackageSummary [documentation identifier "The package identifier."] [field identifier CAI1TypePackageIdentifier] [documentation description "The package description."] [field description cb:String] ] [documentation CAI1Error "An error response."] [record CAI1Error [documentation errorCode "The error code."] [field errorCode cb:String] [documentation message "The error message."] [field message cb:String] [documentation attributes "The error attributes."] [field attributes [cb:Map cb:String cb:String]] [documentation remediatingAction "The remediating action, if any."] [field remediatingAction [cb:Option cb:String]] ] [documentation CAI1TypePackageTypeRemovalBehavior "The type package type removal behavior."] [variant CAI1TypePackageTypeRemovalBehavior [case FailIfTypesReferenced] [case RevokeTypes] ] [documentation CAI1TypePackageVersionBehavior "The type package version behavior."] [variant CAI1TypePackageVersionBehavior [case AllowDowngrades] [case DisallowDowngrades] ] [documentation CAI1TypePackageUninstall "The type package uninstall parameters."] [record CAI1TypePackageUninstall [field typeRemovalBehavior CAI1TypePackageTypeRemovalBehavior] [field identifier CAI1TypePackageIdentifier] ] [variant CAI1StockOccurrenceKind [case Set] [case Serial] ] [variant CAI1StockOccurrence [case Serial [field instance cb:UUID] [field location CAI1LocationSummary] [field item CAI1ItemSummary] [field serials [cb:List CAI1ItemSerial]] ] [case Set [field instance cb:UUID] [field location CAI1LocationSummary] [field item CAI1ItemSummary] [field count cb:IntegerUnsigned64] ] ] [documentation CAI1StockSearchParameters "The stock search parameters."] [record CAI1StockSearchParameters [documentation locationMatch "The location match."] [field locationMatch CAI1LocationMatch] [documentation itemMatch "The item match."] [field itemMatch [CAI1ComparisonExact cb:UUID]] [documentation includeOccurrences "The kinds of stock occurrences to include."] [field includeOccurrences [cb:List CAI1StockOccurrenceKind]] [documentation pageSize "The page size."] [field pageSize cb:IntegerUnsigned32] ] ; ; Commands. ; [documentation CAI1CommandLogin "A request to log in."] [record CAI1CommandLogin [documentation userName "The username."] [field userName cb:String] [documentation password "The password."] [field password cb:String] [documentation metadata "Extra metadata included with the login request."] [field metadata [cb:Map cb:String cb:String]] ] [documentation CAI1CommandFilePut "Add or update files."] [record CAI1CommandFilePut [documentation file "The file."] [field file CAI1File] ] [documentation CAI1CommandFileDelete "Delete files."] [record CAI1CommandFileDelete [documentation id "The file ID."] [field id cb:UUID] ] [documentation CAI1CommandItemAttachmentAdd "Add item attachments."] [record CAI1CommandItemAttachmentAdd [documentation itemId "The item ID."] [field itemId cb:UUID] [documentation fileId "The file ID."] [field fileId cb:UUID] [documentation relation "The attachment relation."] [field relation cb:String] ] [documentation CAI1CommandItemAttachmentRemove "Remove item attachments."] [record CAI1CommandItemAttachmentRemove [documentation itemId "The item ID."] [field itemId cb:UUID] [documentation fileId "The file ID."] [field fileId cb:UUID] [documentation relation "The attachment relation."] [field relation cb:String] ] [documentation CAI1CommandItemCreate "Create a new item."] [record CAI1CommandItemCreate [documentation itemId "The item ID."] [field itemId cb:UUID] [documentation name "The item name."] [field name cb:String] ] [documentation CAI1CommandItemGet "Retrieve an item."] [record CAI1CommandItemGet [documentation itemId "The item ID."] [field itemId cb:UUID] ] [documentation CAI1CommandFileGet "Retrieve a file."] [record CAI1CommandFileGet [documentation fileId "The file ID."] [field fileId cb:UUID] ] [documentation CAI1CommandItemLocationsList "List all the locations an item is in, and how many times the item is in them."] [record CAI1CommandItemLocationsList [documentation itemId "The item ID."] [field itemId cb:UUID] ] [documentation CAI1CommandItemMetadataPut "Add or update metadata values in an item."] [record CAI1CommandItemMetadataPut [documentation itemId "The item ID."] [field itemId cb:UUID] [documentation metadatas "The item metadatas."] [field metadatas [cb:List CAI1Metadata]] ] [documentation CAI1CommandItemMetadataRemove "Remove metadata values from an item."] [record CAI1CommandItemMetadataRemove [documentation itemId "The item ID."] [field itemId cb:UUID] [documentation metadatas "The item metadatas."] [field metadatas [cb:List CAI1TypeRecordFieldIdentifier]] ] [documentation CAI1CommandStockReposit "Reposit an item."] [record CAI1CommandStockReposit [documentation reposit "The item reposition."] [field reposit CAI1StockReposit] ] [documentation CAI1CommandItemDelete "Delete items."] [record CAI1CommandItemDelete [documentation item "The items."] [field item cb:UUID] ] [documentation CAI1CommandItemSetName "Update the names of items."] [record CAI1CommandItemSetName [documentation item "The item ID."] [field item cb:UUID] [documentation name "The item name."] [field name cb:String] ] [documentation CAI1CommandLocationGet "Retrieve a location."] [record CAI1CommandLocationGet [documentation location "The location ID."] [field location cb:UUID] ] [documentation CAI1CommandLocationList "List locations."] [record CAI1CommandLocationList] [documentation CAI1CommandLocationPut "Create or update a location."] [record CAI1CommandLocationPut [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1CommandLocationDelete "Delete locations."] [record CAI1CommandLocationDelete [documentation location "The location."] [field location cb:UUID] ] [documentation CAI1CommandItemSearchBegin "Start searching for items."] [record CAI1CommandItemSearchBegin [documentation parameters "The search parameters."] [field parameters CAI1ItemSearchParameters] ] [documentation CAI1CommandItemSearchNext "Return the next page of search results."] [record CAI1CommandItemSearchNext] [documentation CAI1CommandItemSearchPrevious "Return the next page of search results."] [record CAI1CommandItemSearchPrevious] [documentation CAI1CommandFileSearchBegin "Start searching for items."] [record CAI1CommandFileSearchBegin [documentation parameters "The search parameters."] [field parameters CAI1FileSearchParameters] ] [documentation CAI1CommandFileSearchNext "Return the next page of search results."] [record CAI1CommandFileSearchNext] [documentation CAI1CommandFileSearchPrevious "Return the next page of search results."] [record CAI1CommandFileSearchPrevious] [documentation CAI1CommandRolesAssign "Assign a set of roles to a user."] [record CAI1CommandRolesAssign [documentation user "The target user."] [field user cb:UUID] [documentation roles "The assigned roles."] [field roles [cb:List cb:String]] ] [documentation CAI1CommandRolesRevoke "Revoke a set of roles from a user."] [record CAI1CommandRolesRevoke [documentation user "The target user."] [field user cb:UUID] [documentation roles "The roles."] [field roles [cb:List cb:String]] ] [documentation CAI1CommandRolesGet "Get the roles for a user."] [record CAI1CommandRolesGet [documentation user "The target user."] [field user cb:UUID] ] [documentation CAI1CommandItemTypesAssign "Assign a set of types to an item."] [record CAI1CommandItemTypesAssign [documentation item "The target item."] [field item cb:UUID] [documentation types "The assigned types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1CommandItemTypesRevoke "Revoke a set of types from an item."] [record CAI1CommandItemTypesRevoke [documentation item "The target item."] [field item cb:UUID] [documentation types "The removed types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1CommandLocationMetadataPut "Add or update metadata values in a location."] [record CAI1CommandLocationMetadataPut [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation metadatas "The location metadatas."] [field metadatas [cb:List CAI1Metadata]] ] [documentation CAI1CommandLocationMetadataRemove "Remove metadata values from a location."] [record CAI1CommandLocationMetadataRemove [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation metadatas "The location metadatas."] [field metadatas [cb:List CAI1TypeRecordFieldIdentifier]] ] [documentation CAI1CommandLocationTypesAssign "Assign a set of types to a location."] [record CAI1CommandLocationTypesAssign [documentation location "The target location."] [field location cb:UUID] [documentation types "The assigned types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1CommandLocationTypesRevoke "Revoke a set of types from a location."] [record CAI1CommandLocationTypesRevoke [documentation location "The target location."] [field location cb:UUID] [documentation types "The removed types."] [field types [cb:List CAI1TypeRecordIdentifier]] ] [documentation CAI1CommandLocationAttachmentAdd "Add location attachments."] [record CAI1CommandLocationAttachmentAdd [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation fileId "The file ID."] [field fileId cb:UUID] [documentation relation "The attachment relation."] [field relation cb:String] ] [documentation CAI1CommandLocationAttachmentRemove "Remove location attachments."] [record CAI1CommandLocationAttachmentRemove [documentation locationId "The location ID."] [field locationId cb:UUID] [documentation fileId "The file ID."] [field fileId cb:UUID] [documentation relation "The attachment relation."] [field relation cb:String] ] [documentation CAI1CommandAuditSearchBegin "Start searching audit events."] [record CAI1CommandAuditSearchBegin [documentation parameters "The search parameters."] [field parameters CAI1AuditSearchParameters] ] [documentation CAI1CommandAuditSearchNext "Continue searching audit events."] [record CAI1CommandAuditSearchNext] [documentation CAI1CommandAuditSearchPrevious "Continue searching audit events."] [record CAI1CommandAuditSearchPrevious] [documentation CAI1CommandTypePackageSearchBegin "Start searching type packages."] [record CAI1CommandTypePackageSearchBegin [documentation parameters "The search parameters."] [field parameters CAI1TypePackageSearchParameters] ] [documentation CAI1CommandTypePackageSearchNext "Continue searching type packages."] [record CAI1CommandTypePackageSearchNext] [documentation CAI1CommandTypePackageSearchPrevious "Continue searching type packages."] [record CAI1CommandTypePackageSearchPrevious] [documentation CAI1CommandTypePackageGetText "Get a type package."] [record CAI1CommandTypePackageGetText [documentation identifier "The type package identifier."] [field identifier CAI1TypePackageIdentifier] ] [documentation CAI1CommandTypePackageInstall "Install a type package."] [record CAI1CommandTypePackageInstall [documentation text "The type package text."] [field text cb:String] ] [documentation CAI1CommandTypePackageUninstall "Uninstall a type package."] [record CAI1CommandTypePackageUninstall [documentation parameters "The uninstall parameters."] [field parameters CAI1TypePackageUninstall] ] [documentation CAI1CommandTypePackageUpgrade "Upgrade a type package."] [record CAI1CommandTypePackageUpgrade [documentation typeRemovalBehavior "The type removal behavior."] [field typeRemovalBehavior CAI1TypePackageTypeRemovalBehavior] [documentation versionBehavior "The version behavior."] [field versionBehavior CAI1TypePackageVersionBehavior] [documentation text "The type package text."] [field text cb:String] ] [documentation CAI1CommandStockCount "Count stock."] [record CAI1CommandStockCount [documentation parameters "The search parameters."] [field parameters CAI1StockSearchParameters] ] [documentation CAI1CommandStockSearchBegin "Search stock."] [record CAI1CommandStockSearchBegin [documentation parameters "The search parameters."] [field parameters CAI1StockSearchParameters] ] [documentation CAI1CommandStockSearchNext "Search stock."] [record CAI1CommandStockSearchNext] [documentation CAI1CommandStockSearchPrevious "Search stock."] [record CAI1CommandStockSearchPrevious] ; ; Responses. ; [documentation CAI1ResponseBlame "A blame assignment."] [variant CAI1ResponseBlame [documentation BlameClient "The client sent a bad response."] [case BlameClient] [documentation BlameServer "Something went wrong on the server."] [case BlameServer] ] [documentation CAI1ResponseError "An error response."] [record CAI1ResponseError [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation errorCode "The error code."] [field errorCode cb:String] [documentation message "The error message."] [field message cb:String] [documentation attributes "The error attributes."] [field attributes [cb:Map cb:String cb:String]] [documentation remediatingAction "The remediating action, if any."] [field remediatingAction [cb:Option cb:String]] [documentation blame "The blame assignment."] [field blame CAI1ResponseBlame] [documentation extras "The extra errors."] [field extras [cb:List CAI1Error]] ] [documentation CAI1ResponseLogin "A response to CAI1CommandLogin."] [record CAI1ResponseLogin [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation userId "The ID of the user that logged in."] [field userId cb:UUID] ] [documentation CAI1ResponseFilePut "A response to CAI1CommandFilePut."] [record CAI1ResponseFilePut [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation file "The file."] [field file CAI1File] ] [documentation CAI1ResponseFileDelete "A response to CAI1CommandFileDelete."] [record CAI1ResponseFileDelete [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation id "The file ID."] [field id cb:UUID] ] [documentation CAI1ResponseItemAttachmentAdd "A response to CAI1CommandItemAttachmentAdd."] [record CAI1ResponseItemAttachmentAdd [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseItemAttachmentRemove "A response to CAI1CommandItemAttachmentRemove."] [record CAI1ResponseItemAttachmentRemove [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseItemCreate "A response to CAI1CommandItemCreate."] [record CAI1ResponseItemCreate [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseItemGet "A response to CAI1CommandItemGet."] [record CAI1ResponseItemGet [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseFileGet "A response to CAI1CommandFileGet."] [record CAI1ResponseFileGet [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation file "The file."] [field file CAI1File] ] [documentation CAI1ResponseItemMetadataPut "A response to CAI1CommandItemMetadataPut."] [record CAI1ResponseItemMetadataPut [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseItemMetadataRemove "A response to CAI1CommandItemMetadataRemove."] [record CAI1ResponseItemMetadataRemove [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseStockReposit "A response to CAI1CommandStockReposit."] [record CAI1ResponseStockReposit [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation stock "The stock."] [field stock CAI1StockOccurrence] ] [documentation CAI1ResponseItemDelete "A response to CAI1CommandItemDelete."] [record CAI1ResponseItemDelete [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item cb:UUID] ] [documentation CAI1ResponseItemSetName "A response to CAI1CommandItemSetName."] [record CAI1ResponseItemSetName [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseLocationGet "A response to CAI1CommandLocationGet."] [record CAI1ResponseLocationGet [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationList "A response to CAI1CommandLocationList."] [record CAI1ResponseLocationList [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation locations "The locations."] [field locations [cb:Map cb:UUID CAI1LocationSummary]] ] [documentation CAI1ResponseLocationPut "A response to CAI1CommandLocationPut."] [record CAI1ResponseLocationPut [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationDelete "A response to CAI1CommandLocationDelete."] [record CAI1ResponseLocationDelete [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location cb:UUID] ] [documentation CAI1ResponseItemSearch "A response to CAI1CommandItemSearch."] [record CAI1ResponseItemSearch [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results."] [field results [CAI1Page CAI1ItemSummary]] ] [documentation CAI1ResponseFileSearch "A response to CAI1CommandFileSearch."] [record CAI1ResponseFileSearch [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results."] [field results [CAI1Page CAI1File]] ] [documentation CAI1ResponseRolesAssign "A response to CAI1ResponseRolesAssign."] [record CAI1ResponseRolesAssign [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] ] [documentation CAI1ResponseRolesRevoke "A response to CAI1ResponseRolesRevoke."] [record CAI1ResponseRolesRevoke [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] ] [documentation CAI1ResponseRolesGet "A response to CAI1ResponseRolesGet."] [record CAI1ResponseRolesGet [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation roles "The roles."] [field roles [cb:List cb:String]] ] [documentation CAI1ResponseItemTypesAssign "A response to CAI1CommandItemTypesAssign."] [record CAI1ResponseItemTypesAssign [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseItemTypesRevoke "A response to CAI1CommandItemTypesRevoke."] [record CAI1ResponseItemTypesRevoke [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation item "The item."] [field item CAI1Item] ] [documentation CAI1ResponseLocationMetadataPut "A response to CAI1CommandLocationMetadataPut."] [record CAI1ResponseLocationMetadataPut [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationMetadataRemove "A response to CAI1CommandLocationMetadataRemove."] [record CAI1ResponseLocationMetadataRemove [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationTypesAssign "A response to CAI1CommandLocationTypesAssign."] [record CAI1ResponseLocationTypesAssign [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationTypesRevoke "A response to CAI1CommandLocationTypesRevoke."] [record CAI1ResponseLocationTypesRevoke [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationAttachmentAdd "A response to CAI1CommandLocationAttachmentAdd."] [record CAI1ResponseLocationAttachmentAdd [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseLocationAttachmentRemove "A response to CAI1CommandLocationAttachmentRemove."] [record CAI1ResponseLocationAttachmentRemove [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation location "The location."] [field location CAI1Location] ] [documentation CAI1ResponseAuditSearch "A response to CAI1CommandAuditSearchBegin."] [record CAI1ResponseAuditSearch [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results"] [field results [CAI1Page CAI1AuditEvent]] ] [documentation CAI1ResponseTypePackageSearch "A response to CAI1CommandTypePackageSearch."] [record CAI1ResponseTypePackageSearch [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results."] [field results [CAI1Page CAI1TypePackageSummary]] ] [documentation CAI1ResponseTypePackageGetText "A response to CAI1CommandTypePackageGetText."] [record CAI1ResponseTypePackageGetText [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results."] [field results cb:String] ] [documentation CAI1ResponseTypePackageInstall "A response to CAI1CommandTypePackageInstall."] [record CAI1ResponseTypePackageInstall [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation identifier "The identifier."] [field identifier CAI1TypePackageIdentifier] ] [documentation CAI1ResponseTypePackageUninstall "A response to CAI1CommandTypePackageUninstall."] [record CAI1ResponseTypePackageUninstall [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] ] [documentation CAI1ResponseTypePackageUpgrade "A response to CAI1CommandTypePackageUpgrade."] [record CAI1ResponseTypePackageUpgrade [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation identifier "The identifier."] [field identifier CAI1TypePackageIdentifier] ] [documentation CAI1ResponseStockCount "A response to CAI1CommandStockCount."] [record CAI1ResponseStockCount [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation count "The count."] [field count cb:IntegerUnsigned64] ] [documentation CAI1ResponseStockSearch "A response to CAI1CommandStockSearch."] [record CAI1ResponseStockSearch [documentation requestId "The ID of the request that yielded this response."] [field requestId cb:UUID] [documentation results "The results."] [field results [CAI1Page CAI1StockOccurrence]] ] ; ; Events. ; [documentation CAI1EventUpdated "Data on the server was updated."] [record CAI1EventUpdated [documentation updated "The list of objects that were updated."] [field updated [cb:List CAI1Id]] [documentation removed "The list of objects that were removed."] [field removed [cb:List CAI1Id]]] ; ; Protocol. ; [documentation CAI "The Inventory protocol."] [protocol CAI [version 1 [types-added CAI1CommandAuditSearchBegin CAI1CommandAuditSearchNext CAI1CommandAuditSearchPrevious CAI1CommandFileDelete CAI1CommandFileGet CAI1CommandFilePut CAI1CommandFileSearchBegin CAI1CommandFileSearchNext CAI1CommandFileSearchPrevious CAI1CommandItemAttachmentAdd CAI1CommandItemAttachmentRemove CAI1CommandItemCreate CAI1CommandItemDelete CAI1CommandItemGet CAI1CommandItemMetadataPut CAI1CommandItemMetadataRemove CAI1CommandItemSearchBegin CAI1CommandItemSearchNext CAI1CommandItemSearchPrevious CAI1CommandItemSetName CAI1CommandItemTypesAssign CAI1CommandItemTypesRevoke CAI1CommandLocationAttachmentAdd CAI1CommandLocationAttachmentRemove CAI1CommandLocationDelete CAI1CommandLocationGet CAI1CommandLocationList CAI1CommandLocationMetadataPut CAI1CommandLocationMetadataRemove CAI1CommandLocationPut CAI1CommandLocationTypesAssign CAI1CommandLocationTypesRevoke CAI1CommandLogin CAI1CommandRolesAssign CAI1CommandRolesGet CAI1CommandRolesRevoke CAI1CommandStockCount CAI1CommandStockReposit CAI1CommandStockSearchBegin CAI1CommandStockSearchNext CAI1CommandStockSearchPrevious CAI1CommandTypePackageGetText CAI1CommandTypePackageInstall CAI1CommandTypePackageSearchBegin CAI1CommandTypePackageSearchNext CAI1CommandTypePackageSearchPrevious CAI1CommandTypePackageUninstall CAI1CommandTypePackageUpgrade CAI1EventUpdated CAI1ResponseAuditSearch CAI1ResponseError CAI1ResponseFileDelete CAI1ResponseFileGet CAI1ResponseFilePut CAI1ResponseFileSearch CAI1ResponseItemAttachmentAdd CAI1ResponseItemAttachmentRemove CAI1ResponseItemCreate CAI1ResponseItemDelete CAI1ResponseItemGet CAI1ResponseItemMetadataPut CAI1ResponseItemMetadataRemove CAI1ResponseItemSearch CAI1ResponseItemSetName CAI1ResponseItemTypesAssign CAI1ResponseItemTypesRevoke CAI1ResponseLocationAttachmentAdd CAI1ResponseLocationAttachmentRemove CAI1ResponseLocationDelete CAI1ResponseLocationGet CAI1ResponseLocationList CAI1ResponseLocationMetadataPut CAI1ResponseLocationMetadataRemove CAI1ResponseLocationPut CAI1ResponseLocationTypesAssign CAI1ResponseLocationTypesRevoke CAI1ResponseLogin CAI1ResponseRolesAssign CAI1ResponseRolesGet CAI1ResponseRolesRevoke CAI1ResponseStockCount CAI1ResponseStockReposit CAI1ResponseStockSearch CAI1ResponseTypePackageGetText CAI1ResponseTypePackageInstall CAI1ResponseTypePackageSearch CAI1ResponseTypePackageUninstall CAI1ResponseTypePackageUpgrade ] ] ]
<?xml version="1.0" encoding="UTF-8" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:p="com.io7m.cardant:type_packages:1" targetNamespace="com.io7m.cardant:type_packages:1"> <xsd:simpleType name="UnqualifiedNameType"> <xsd:annotation> <xsd:documentation> The type of unqualified names. </xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:pattern value="[a-z][a-z0-9_-]{0,62}"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PackageNameType"> <xsd:annotation> <xsd:documentation> The type of fully qualified package names. </xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:pattern value="([a-z][a-z0-9_-]{0,63})(\.[a-z][a-z0-9_-]{0,62}){0,15}"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="PackageVersionType"> <xsd:annotation> <xsd:documentation> The type of package versions. </xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string"> <xsd:pattern value="([0-9]+)\.([0-9]+)\.([0-9]+)(-(.+))?"/> </xsd:restriction> </xsd:simpleType> <xsd:element name="PackageInfo"> <xsd:complexType> <xsd:attribute name="Name" type="p:PackageNameType" use="required"> <xsd:annotation> <xsd:documentation> The name of the package. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Version" type="p:PackageVersionType" use="required"> <xsd:annotation> <xsd:documentation> The version of the package. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Description" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> The description of the package. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="VersionRange"> <xsd:complexType> <xsd:attribute name="VersionLower" type="p:PackageVersionType" use="required"> <xsd:annotation> <xsd:documentation> The lower bound on the versions of the imported package. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="VersionLowerInclusive" type="xsd:boolean" use="required"> <xsd:annotation> <xsd:documentation> The lower bound is inclusive. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="VersionUpper" type="p:PackageVersionType" use="required"> <xsd:annotation> <xsd:documentation> The upper bound on the versions of the imported package. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="VersionUpperInclusive" type="xsd:boolean" use="required"> <xsd:annotation> <xsd:documentation> The upper bound is inclusive. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="Import"> <xsd:complexType> <xsd:sequence> <xsd:element ref="p:VersionRange"/> </xsd:sequence> <xsd:attribute name="Package" type="p:PackageNameType" use="required"> <xsd:annotation> <xsd:documentation> The name of the imported package. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:complexType name="TypeDeclarationType" abstract="true"> <xsd:annotation> <xsd:documentation> The base type of type declarations. </xsd:documentation> </xsd:annotation> <xsd:attribute name="Name" type="p:UnqualifiedNameType" use="required"> <xsd:annotation> <xsd:documentation> The name of the type. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Description" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> The humanly-readable description of the type. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> <xsd:complexType name="TypeScalarType" abstract="true"> <xsd:complexContent> <xsd:extension base="p:TypeDeclarationType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar type. </xsd:documentation> </xsd:annotation> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="TypeScalarTextType"> <xsd:complexContent> <xsd:extension base="p:TypeScalarType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar text type. </xsd:documentation> </xsd:annotation> <xsd:attribute name="Pattern" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> The pattern that constrains text values. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TypeScalarText" type="p:TypeScalarTextType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar text type. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="TypeScalarIntegralType"> <xsd:complexContent> <xsd:extension base="p:TypeScalarType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar integral type. </xsd:documentation> </xsd:annotation> <xsd:attribute name="RangeLower" type="xsd:long" use="required"> <xsd:annotation> <xsd:documentation> The lower inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="RangeUpper" type="xsd:long" use="required"> <xsd:annotation> <xsd:documentation> The upper inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TypeScalarIntegral" type="p:TypeScalarIntegralType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar integral type. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="TypeScalarRealType"> <xsd:complexContent> <xsd:extension base="p:TypeScalarType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar real type. </xsd:documentation> </xsd:annotation> <xsd:attribute name="RangeLower" type="xsd:double" use="required"> <xsd:annotation> <xsd:documentation> The lower inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="RangeUpper" type="xsd:double" use="required"> <xsd:annotation> <xsd:documentation> The upper inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TypeScalarReal" type="p:TypeScalarRealType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar real type. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="TypeScalarTimeType"> <xsd:complexContent> <xsd:extension base="p:TypeScalarType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar time type. </xsd:documentation> </xsd:annotation> <xsd:attribute name="RangeLower" type="xsd:dateTime" use="required"> <xsd:annotation> <xsd:documentation> The lower inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="RangeUpper" type="xsd:dateTime" use="required"> <xsd:annotation> <xsd:documentation> The upper inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TypeScalarTime" type="p:TypeScalarTimeType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar time type. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="TypeScalarMonetaryType"> <xsd:complexContent> <xsd:extension base="p:TypeScalarType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar monetary type. </xsd:documentation> </xsd:annotation> <xsd:attribute name="RangeLower" type="xsd:decimal" use="required"> <xsd:annotation> <xsd:documentation> The lower inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="RangeUpper" type="xsd:decimal" use="required"> <xsd:annotation> <xsd:documentation> The upper inclusive bound. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="TypeScalarMonetary" type="p:TypeScalarMonetaryType"> <xsd:annotation> <xsd:documentation> A declaration of a scalar monetary type. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:complexType name="TypeFieldType" abstract="true"> <xsd:attribute name="Name" type="p:UnqualifiedNameType" use="required"> <xsd:annotation> <xsd:documentation> The name of the record field. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Required" type="xsd:boolean" default="true"> <xsd:annotation> <xsd:documentation> Whether the record field is required to be present. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Description" type="xsd:string" use="required"> <xsd:annotation> <xsd:documentation> A description of the record field. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> <xsd:complexType name="TypeFieldLocalType"> <xsd:annotation> <xsd:documentation> A field that refers to a type within this package. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="p:TypeFieldType"> <xsd:attribute name="Type" use="required" type="p:UnqualifiedNameType"> <xsd:annotation> <xsd:documentation> The scalar type of the field. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="Field" type="p:TypeFieldLocalType"/> <xsd:complexType name="TypeFieldWithExternalTypeType"> <xsd:annotation> <xsd:documentation> A field that refers to a type within another package. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="p:TypeFieldType"> <xsd:attribute name="Package" use="required" type="p:PackageNameType"> <xsd:annotation> <xsd:documentation> The package containing the target type. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="Type" use="required" type="p:UnqualifiedNameType"> <xsd:annotation> <xsd:documentation> The scalar type of the field. </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="FieldWithExternalType" type="p:TypeFieldWithExternalTypeType"/> <xsd:group name="TypeFieldGroup"> <xsd:choice> <xsd:element ref="p:Field"/> <xsd:element ref="p:FieldWithExternalType"/> </xsd:choice> </xsd:group> <xsd:element name="TypeRecord"> <xsd:complexType> <xsd:annotation> <xsd:documentation> A declaration of a record type. </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="p:TypeDeclarationType"> <xsd:group ref="p:TypeFieldGroup" minOccurs="0" maxOccurs="unbounded"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:unique name="TypeRecordFieldsUnique"> <xsd:selector xpath="p:Field|p:FieldWithExternalType"/> <xsd:field xpath="@Name"/> </xsd:unique> </xsd:element> <xsd:group name="TypeDeclarationGroup"> <xsd:choice> <xsd:element ref="p:TypeRecord"/> <xsd:element ref="p:TypeScalarIntegral"/> <xsd:element ref="p:TypeScalarMonetary"/> <xsd:element ref="p:TypeScalarReal"/> <xsd:element ref="p:TypeScalarText"/> <xsd:element ref="p:TypeScalarTime"/> </xsd:choice> </xsd:group> <xsd:element name="Package"> <xsd:complexType> <xsd:sequence> <xsd:element ref="p:PackageInfo"/> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="p:Import"/> </xsd:sequence> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:group ref="p:TypeDeclarationGroup"/> </xsd:sequence> </xsd:sequence> </xsd:complexType> <xsd:key name="TypeScalarsUnique"> <xsd:annotation> <xsd:documentation> Scalar types must be uniquely named within a package. </xsd:documentation> </xsd:annotation> <xsd:selector xpath="p:TypeScalarIntegral|p:TypeScalarMonetary|p:TypeScalarReal|p:TypeScalarText|p:TypeScalarTime"/> <xsd:field xpath="@Name"/> </xsd:key> <xsd:key name="TypeRecordsUnique"> <xsd:annotation> <xsd:documentation> Record types must be uniquely named within a package. </xsd:documentation> </xsd:annotation> <xsd:selector xpath="p:TypeRecord"/> <xsd:field xpath="@Name"/> </xsd:key> <xsd:key name="ImportsUnique"> <xsd:annotation> <xsd:documentation> Imports must be unique within a package. </xsd:documentation> </xsd:annotation> <xsd:selector xpath="p:Import"/> <xsd:field xpath="@Package"/> </xsd:key> </xsd:element> </xsd:schema>