| 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 0.0.2 |
$ gpg --verify com.io7m.cardant.main-0.0.2-distribution.zip.asc gpg: assuming signed data in 'com.io7m.cardant.main-0.0.2-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-0.0.2-distribution.zip $ export CARDANT_HOME=$(realpath cardant) $ ./cardant/bin/cardant cardant: usage: cardant [command] [arguments ...] ...
$ podman pull quay.io/io7mcom/cardant:0.0.2 $ podman run quay.io/io7mcom/cardant:0.0.2 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"/>
<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>
</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 Reposit = | RepositSetAdd Item Count Location | RepositSetRemove Item Count Location | RepositSetMove Item Count Location Location | RepositSerialAdd Item Serial Location | RepositSerialRemove Item Serial Location | RepositSerialMove Item Serial Location Location
| 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> [<type>, ...] ")"
| "(" "with-types-not-equal-to" <type> [<type>, ...] ")"
| "(" "with-types-superset-of" <type> [<type>, ...] ")"
| "(" "with-types-subset-of" <type> [<type>, ...] ")"
| "(" "with-types-overlapping" <type> [<type>, ...] ")"
;
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> ")"
;
| 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.lanark.core.RDottedName |
| Default Value | [] |
| Cardinality | [1, N] |
| Description | The metadata key. |
| 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 | java.lang.String |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The item serial number. |
| Attribute | Value |
|---|---|
| Name | --item |
| Type | com.io7m.cardant.model.CAItemID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The item ID. |
| Attribute | Value |
|---|---|
| Name | --location-from |
| Type | com.io7m.cardant.model.CALocationID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The source location ID. |
| Attribute | Value |
|---|---|
| Name | --location-to |
| Type | com.io7m.cardant.model.CALocationID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The destination location ID. |
| Attribute | Value |
|---|---|
| Name | --serial |
| Type | java.lang.String |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The item serial number. |
| 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 | java.lang.String |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The item serial number. |
| 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 | --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 | --count |
| Type | java.lang.Long |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The number of instances of the item to remove. |
| Attribute | Value |
|---|---|
| Name | --item |
| Type | com.io7m.cardant.model.CAItemID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The item ID. |
| Attribute | Value |
|---|---|
| Name | --location-from |
| Type | com.io7m.cardant.model.CALocationID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The source location ID. |
| Attribute | Value |
|---|---|
| Name | --location-to |
| Type | com.io7m.cardant.model.CALocationID |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The destination location ID. |
| 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 | --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 | --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.CAItemLocationMatchType |
| 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.CANameMatch |
| 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.lanark.core.RDottedName |
| 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.lanark.core.RDottedName |
| 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 | 6df1b4da-abd7-4dc7-af44-37fc908038da |
| 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 | --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 | --name |
| Type | com.io7m.lanark.core.RDottedName |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The type name. |
| 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 | --name-match |
| Type | com.io7m.cardant.model.CANameMatch |
| Default Value | with-any-name |
| Cardinality | [1, 1] |
| Description | Only include types that have names matching the given expression. |
| Attribute | Value |
|---|---|
| Name | --name |
| Type | com.io7m.lanark.core.RDottedName |
| Default Value | |
| Cardinality | [1, 1] |
| Description | The type name. |
| 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 | --name-match |
| Type | com.io7m.cardant.model.CANameMatch |
| Default Value | with-any-name |
| Cardinality | [1, 1] |
| Description | Only include types that have names matching the given expression. |
$ 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]]
]
[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 cb:String]
[documentation value "The metadata value."]
[field value cb:IntegerSigned64]
]
[case Text
[documentation key "The metadata value key."]
[field key cb:String]
[documentation value "The metadata value."]
[field value cb:String]
]
[case Time
[documentation key "The metadata value key."]
[field key cb:String]
[documentation value "The metadata value."]
[field value ct:OffsetDateTime]
]
[case Monetary
[documentation key "The metadata value key."]
[field key cb:String]
[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 cb:String]
[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 countTotal "The total item count."]
[field countTotal cb:IntegerUnsigned64]
[documentation countHere "The item count in this location."]
[field countHere cb:IntegerUnsigned64]
[documentation metadata "The item metadata."]
[field metadata [cb:Map cb:String CAI1Metadata]]
[documentation attachments "The item attachments."]
[field attachments [cb:Map CAI1AttachmentKey CAI1Attachment]]
[documentation types "The item types."]
[field types [cb:List cb:String]]
]
[documentation CAI1ListLocationBehaviour "The behaviour requested for listing items in locations."]
[variant CAI1ListLocationBehaviour
[documentation CAI1ListLocationExact "Only list items within the exact given location."]
[case CAI1ListLocationExact
[field locationId cb:UUID]]
[documentation CAI1ListLocationWithDescendants "List items within the given location and all descendants of the given location."]
[case CAI1ListLocationWithDescendants
[field locationId cb:UUID]]
[documentation CAI1ListLocationsAll "List items within all locations."]
[case CAI1ListLocationsAll]
]
[documentation CAI1ItemLocation "An assertion that there are count instances of item at location."]
[record CAI1ItemLocation
[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 CAI1ItemLocations "A set of assertions indicating items in locations."]
[record CAI1ItemLocations
[documentation locations "The item locations."]
[field locations [cb:Map cb:UUID [cb:Map cb:UUID CAI1ItemLocation]]]
]
[documentation CAI1ItemReposit "The type of item reposit operations."]
[variant CAI1ItemReposit
[documentation CAI1ItemRepositSetAdd "An operation that adds a set of items to a storage location."]
[case CAI1ItemRepositSetAdd
[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 CAI1ItemRepositSetMove "An operation that moves a set of items from one storage location to another."]
[case CAI1ItemRepositSetMove
[documentation itemId "The item."]
[field itemId cb:UUID]
[documentation locationFrom "The from location."]
[field locationFrom cb:UUID]
[documentation locationTo "The to location."]
[field locationTo cb:UUID]
[documentation count "The count."]
[field count cb:IntegerUnsigned64]]
[documentation CAI1ItemRepositSetRemove "An operation that removes a set of items from a storage location."]
[case CAI1ItemRepositSetRemove
[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 CAI1ItemRepositSerialAdd "An operation that adds a single identified item to a storage location."]
[case CAI1ItemRepositSerialAdd
[documentation itemId "The item."]
[field itemId cb:UUID]
[documentation locationId "The location ID."]
[field locationId cb:UUID]
[documentation serial "The serial number."]
[field serial cb:String]]
[documentation CAI1ItemRepositSerialMove "An operation that moves a single identified item from one storage location to another."]
[case CAI1ItemRepositSerialMove
[documentation itemId "The item."]
[field itemId cb:UUID]
[documentation locationFrom "The from location."]
[field locationFrom cb:UUID]
[documentation locationTo "The to location."]
[field locationTo cb:UUID]
[documentation serial "The serial number."]
[field serial cb:String]]
[documentation CAI1ItemRepositSerialRemove "An operation that removes a single identified item from a storage location."]
[case CAI1ItemRepositSerialRemove
[documentation itemId "The item."]
[field itemId cb:UUID]
[documentation locationId "The location ID."]
[field locationId cb:UUID]
[documentation serial "The serial number."]
[field serial cb:String]]
]
[documentation CAI1LocationSummary "A summary of a location."]
[record CAI1LocationSummary
[field id cb:UUID]
[field parent [cb:Option cb:UUID]]
[field name cb:String]
]
[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 name "The location name."]
[field name cb:String]
[documentation metadata "The item metadata."]
[field metadata [cb:Map cb:String CAI1Metadata]]
[documentation attachments "The item attachments."]
[field attachments [cb:Map CAI1AttachmentKey CAI1Attachment]]
[documentation types "The item types."]
[field types [cb:List cb:String]]
]
[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 name [CAI1ComparisonFuzzy cb:String]]
[field value CAI1MetadataValueMatch]
]
]
[documentation CAI1ItemSearchParameters "The item search parameters."]
[record CAI1ItemSearchParameters
[documentation location "The item location search behaviour."]
[field location CAI1ListLocationBehaviour]
[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 cb:String]]
[documentation serialMatch "The item serial match expression."]
[field serialMatch [CAI1ComparisonExact cb:String]]
[documentation metaMatch "The item metadata match expression."]
[field metaMatch CAI1MetadataElementMatch]
[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 CAI1TypeScalar "A scalar type."]
[variant CAI1TypeScalar
[case Integral
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type name."]
[field name cb:String]
[documentation description "The type description."]
[field description cb:String]
[field rangeLower cb:IntegerSigned64]
[field rangeUpper cb:IntegerSigned64]
]
[case Text
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type name."]
[field name cb:String]
[documentation description "The type description."]
[field description cb:String]
[field pattern cb:String]
]
[case Time
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type name."]
[field name cb:String]
[documentation description "The type description."]
[field description cb:String]
[field rangeLower ct:OffsetDateTime]
[field rangeUpper ct:OffsetDateTime]
]
[case Monetary
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type name."]
[field name cb:String]
[documentation description "The type description."]
[field description cb:String]
[field rangeLower cb:String]
[field rangeUpper cb:String]
]
[case Real
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type name."]
[field name cb:String]
[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 cb:String]
[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
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type declaration name."]
[field name cb:String]
[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 cb:String CAI1TypeField]]
]
[documentation CAI1TypeRecordSummary "A type declaration summary."]
[record CAI1TypeRecordSummary
[field packageIdentifier CAI1TypePackageIdentifier]
[documentation name "The type declaration name."]
[field name cb:String]
[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]
]
;
; 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 CAI1CommandFileRemove "Remove files."]
[record CAI1CommandFileRemove
[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 cb:String]]
]
[documentation CAI1CommandItemReposit "Reposit an item."]
[record CAI1CommandItemReposit
[documentation reposit "The item reposition."]
[field reposit CAI1ItemReposit]
]
[documentation CAI1CommandItemsRemove "Remove items."]
[record CAI1CommandItemsRemove
[documentation items "The items."]
[field items [cb:List 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 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 CAI1CommandRolesRevoke "Get the roles for a user."]
[record CAI1CommandRolesGet
[documentation user "The target user."]
[field user cb:UUID]
]
[documentation CAI1CommandTypeScalarGet "Get a scalar type."]
[record CAI1CommandTypeScalarGet
[documentation name "The type name."]
[field name cb:String]
]
[documentation CAI1CommandTypeScalarSearchBegin "Search for scalar types."]
[record CAI1CommandTypeScalarSearchBegin
[documentation parameters "The parameters."]
[field parameters CAI1TypeScalarSearchParameters]
]
[documentation CAI1CommandTypeScalarSearchNext "Search for scalar types."]
[record CAI1CommandTypeScalarSearchNext]
[documentation CAI1CommandTypeScalarSearchPrevious "Search for scalar types."]
[record CAI1CommandTypeScalarSearchPrevious]
[documentation CAI1CommandTypeRecordGet "Get a declared type."]
[record CAI1CommandTypeRecordGet
[documentation name "The type name."]
[field name cb:String]
]
[documentation CAI1CommandTypeRecordSearchBegin "Search for declared types."]
[record CAI1CommandTypeRecordSearchBegin
[documentation parameters "The parameters."]
[field parameters CAI1TypeRecordSearchParameters]
]
[documentation CAI1CommandTypeRecordSearchNext "Search for declared types."]
[record CAI1CommandTypeRecordSearchNext]
[documentation CAI1CommandTypeRecordSearchPrevious "Search for declared types."]
[record CAI1CommandTypeRecordSearchPrevious]
[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 cb:String]]
]
[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 cb:String]]
]
[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 cb:String]]
]
[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 cb:String]]
]
[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 cb:String]]
]
[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]
]
;
; 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 CAI1ResponseFileRemove "A response to CAI1CommandFileRemove."]
[record CAI1ResponseFileRemove
[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 CAI1ResponseItemLocationsList "A response to CAI1CommandItemLocationsList."]
[record CAI1ResponseItemLocationsList
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation itemLocations "The item locations."]
[field itemLocations CAI1ItemLocations]
]
[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 CAI1ResponseItemReposit "A response to CAI1CommandItemReposit."]
[record CAI1ResponseItemReposit
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation item "The item."]
[field item CAI1Item]
]
[documentation CAI1ResponseItemsRemove "A response to CAI1CommandItemsRemove."]
[record CAI1ResponseItemsRemove
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation items "The items."]
[field items [cb:List 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 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 CAI1ResponseTypeScalarGet "A response to CAI1CommandTypeScalarGet."]
[record CAI1ResponseTypeScalarGet
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation type "The scalar type."]
[field type CAI1TypeScalar]
]
[documentation CAI1ResponseTypeScalarSearch "A response to CAI1CommandTypeScalarSearch*."]
[record CAI1ResponseTypeScalarSearch
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation results "The results."]
[field results [CAI1Page CAI1TypeScalar]]
]
[documentation CAI1ResponseTypeRecordGet "A response to CAI1CommandTypeRecordGet."]
[record CAI1ResponseTypeRecordGet
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation type "The scalar type."]
[field type CAI1TypeRecord]
]
[documentation CAI1ResponseTypeRecordSearch "A response to CAI1CommandTypeRecordSearch*."]
[record CAI1ResponseTypeRecordSearch
[documentation requestId "The ID of the request that yielded this response."]
[field requestId cb:UUID]
[documentation results "The results."]
[field results [CAI1Page CAI1TypeRecordSummary]]
]
[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]
]
;
; 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
CAI1CommandFileGet
CAI1CommandFilePut
CAI1CommandFileRemove
CAI1CommandFileSearchBegin
CAI1CommandFileSearchNext
CAI1CommandFileSearchPrevious
CAI1CommandItemAttachmentAdd
CAI1CommandItemAttachmentRemove
CAI1CommandItemCreate
CAI1CommandItemGet
CAI1CommandItemLocationsList
CAI1CommandItemMetadataPut
CAI1CommandItemMetadataRemove
CAI1CommandItemReposit
CAI1CommandItemSearchBegin
CAI1CommandItemSearchNext
CAI1CommandItemSearchPrevious
CAI1CommandItemSetName
CAI1CommandItemTypesAssign
CAI1CommandItemTypesRevoke
CAI1CommandItemsRemove
CAI1CommandLocationAttachmentAdd
CAI1CommandLocationAttachmentRemove
CAI1CommandLocationGet
CAI1CommandLocationList
CAI1CommandLocationMetadataPut
CAI1CommandLocationMetadataRemove
CAI1CommandLocationPut
CAI1CommandLocationTypesAssign
CAI1CommandLocationTypesRevoke
CAI1CommandLogin
CAI1CommandRolesAssign
CAI1CommandRolesGet
CAI1CommandRolesRevoke
CAI1CommandTypePackageGetText
CAI1CommandTypePackageInstall
CAI1CommandTypePackageSearchBegin
CAI1CommandTypePackageSearchNext
CAI1CommandTypePackageSearchPrevious
CAI1CommandTypePackageUninstall
CAI1CommandTypePackageUpgrade
CAI1CommandTypeRecordGet
CAI1CommandTypeRecordSearchBegin
CAI1CommandTypeRecordSearchNext
CAI1CommandTypeRecordSearchPrevious
CAI1CommandTypeScalarGet
CAI1CommandTypeScalarSearchBegin
CAI1CommandTypeScalarSearchNext
CAI1CommandTypeScalarSearchPrevious
CAI1EventUpdated
CAI1ResponseAuditSearch
CAI1ResponseError
CAI1ResponseFileGet
CAI1ResponseFilePut
CAI1ResponseFileRemove
CAI1ResponseFileSearch
CAI1ResponseItemAttachmentAdd
CAI1ResponseItemAttachmentRemove
CAI1ResponseItemCreate
CAI1ResponseItemGet
CAI1ResponseItemLocationsList
CAI1ResponseItemMetadataPut
CAI1ResponseItemMetadataRemove
CAI1ResponseItemReposit
CAI1ResponseItemSearch
CAI1ResponseItemSetName
CAI1ResponseItemTypesAssign
CAI1ResponseItemTypesRevoke
CAI1ResponseItemsRemove
CAI1ResponseLocationAttachmentAdd
CAI1ResponseLocationAttachmentRemove
CAI1ResponseLocationGet
CAI1ResponseLocationList
CAI1ResponseLocationMetadataPut
CAI1ResponseLocationMetadataRemove
CAI1ResponseLocationPut
CAI1ResponseLocationTypesAssign
CAI1ResponseLocationTypesRevoke
CAI1ResponseLogin
CAI1ResponseRolesAssign
CAI1ResponseRolesGet
CAI1ResponseRolesRevoke
CAI1ResponseTypePackageGetText
CAI1ResponseTypePackageInstall
CAI1ResponseTypePackageSearch
CAI1ResponseTypePackageUninstall
CAI1ResponseTypePackageUpgrade
CAI1ResponseTypeRecordGet
CAI1ResponseTypeRecordSearch
CAI1ResponseTypeScalarGet
CAI1ResponseTypeScalarSearch
]
]
]
<?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="QualifiedNameType">
<xsd:annotation>
<xsd:documentation>
The type of Lanark dotted 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:QualifiedNameType"
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:QualifiedNameType"
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="Type"
use="required"
type="p:QualifiedNameType">
<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>