Add collection
Adds a collection.
The collection request can be provided in JSON or PVSchema format by setting the Content-Type
header to application/json
or application/pvschema
, respectively. The collection can be returned in JSON or PVSchema format using the format
query parameter or by setting the Accept
header to application/json
or application/pvschema
, respectively. The default is to return JSON.
See PVSchema for more details on the structure and content of PVSchema.
Invalid optional properties
attributes in a JSON request are ignored.
The combined length of the collection name and the longest property name can not exceed 40 characters.
The role performing this operation must have the CapCollectionsWriter
capability. See Access control for more information about how capabilities are used to control access to operations.
Request
Query parameters
format
- stringThe format of the response. Overrides any
Accept
header value provided.custom_audit
- stringCustom audit information to be included in the audit log.
options
- array of stringsOptions for the operation. Options include:
show_builtins
– show built-in properties in the response.
Request body
Details of the collection including its properties.
- application/json
- application/pvschema
creation_time
- stringThe time when the collection was created, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
modification_time
- stringThe time when the collection was last modified, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
name
- string required*The name of a collection.
properties
- array of objects required*Each object:creation_time
- stringThe time when the property was created, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
modification_time
- stringThe time when the property was last modified, in RFC3339 format. Vault sets this value automatically. Sending a value for this field is ignored.
description
- stringThe description of a model.
is_builtin
- booleanWhether the property is created by Vault (or by the user). Built-in properties cannot be deleted or modified. Sending a value for this field is ignored.
is_encrypted
- booleanWhether the value is stored encrypted.
is_index
- booleanWhether the backend storage is optimized for searches on this property. Cannot be set to
true
for properties with data typesLONG_TEXT
,JSON
, orBLOB
, or custom data types based on those types.is_substring_index
- booleanWhether the backend storage is optimized for substring searches on this property. See indexing in the data type reference for a list of supported data types.
is_nullable
- booleanWhether the value of the property can be removed (set to null).
is_readonly
- booleanWhether the user can modify values of this property. Ignored for user define properties. Sending a value for this field is ignored.
is_unique
- booleanWhether the backend storage enforces unique values for active objects. Cannot be set to
true
for properties with data typesLONG_TEXT
,JSON
, orBLOB
, or custom data types based on those types.name
- string required*The name of a property.
data_type_name
- string required*The name of a data type.
type
- string required*The schema prototype the collection is based on.
{
"type": "PERSONS",
"name": "customers",
"properties": [
{
"description": "Date of birth",
"name": "date_of_birth",
"data_type_name": "DATE_OF_BIRTH",
"is_nullable": true
},
{
"description": "Email",
"name": "email",
"data_type_name": "EMAIL",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
},
{
"description": "First name",
"name": "first_name",
"data_type_name": "NAME"
},
{
"description": "Last name",
"name": "last_name",
"data_type_name": "NAME"
},
{
"description": "Phone number",
"name": "phone_number",
"data_type_name": "PHONE_NUMBER",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
}
]
}
{
"type": "PERSONS",
"name": "customers",
"properties": [
{
"description": "Date of birth",
"name": "date_of_birth",
"data_type_name": "DATE_OF_BIRTH",
"is_nullable": true
},
{
"description": "Email",
"name": "email",
"data_type_name": "EMAIL",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
},
{
"description": "First name",
"name": "first_name",
"data_type_name": "NAME"
},
{
"description": "Last name",
"name": "last_name",
"data_type_name": "NAME"
},
{
"description": "Phone number",
"name": "phone_number",
"data_type_name": "PHONE_NUMBER",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
}
]
}
customers PERSONS (
date_of_birth DATE_OF_BIRTH NULL COMMENT 'Date of birth',
email EMAIL NULL UNIQUE INDEX COMMENT 'Email',
first_name NAME COMMENT 'First name',
last_name NAME COMMENT 'Last name',
phone_number PHONE_NUMBER NULL UNIQUE INDEX COMMENT 'Phone number',
);
Possible responses
- 200
- 400
- 401
- 403
- 404
- 405
- 409
- 410
- 500
- 503
The request is successful.
- application/json
- application/pvschema
creation_time
- stringThe time when the collection was created, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
modification_time
- stringThe time when the collection was last modified, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
name
- string required*The name of a collection.
properties
- array of objects required*Each object:creation_time
- stringThe time when the property was created, in RFC3339Nano format. Vault sets this value automatically. Sending a value for this field is ignored.
modification_time
- stringThe time when the property was last modified, in RFC3339 format. Vault sets this value automatically. Sending a value for this field is ignored.
description
- stringThe description of a model.
is_builtin
- booleanWhether the property is created by Vault (or by the user). Built-in properties cannot be deleted or modified. Sending a value for this field is ignored.
is_encrypted
- booleanWhether the value is stored encrypted.
is_index
- booleanWhether the backend storage is optimized for searches on this property. Cannot be set to
true
for properties with data typesLONG_TEXT
,JSON
, orBLOB
, or custom data types based on those types.is_substring_index
- booleanWhether the backend storage is optimized for substring searches on this property. See indexing in the data type reference for a list of supported data types.
is_nullable
- booleanWhether the value of the property can be removed (set to null).
is_readonly
- booleanWhether the user can modify values of this property. Ignored for user define properties. Sending a value for this field is ignored.
is_unique
- booleanWhether the backend storage enforces unique values for active objects. Cannot be set to
true
for properties with data typesLONG_TEXT
,JSON
, orBLOB
, or custom data types based on those types.name
- string required*The name of a property.
data_type_name
- string required*The name of a data type.
type
- string required*The schema prototype the collection is based on.
{
"type": "PERSONS",
"name": "customers",
"properties": [
{
"description": "Date of birth",
"name": "date_of_birth",
"data_type_name": "DATE_OF_BIRTH",
"is_nullable": true
},
{
"description": "Email",
"name": "email",
"data_type_name": "EMAIL",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
},
{
"description": "First name",
"name": "first_name",
"data_type_name": "NAME"
},
{
"description": "Last name",
"name": "last_name",
"data_type_name": "NAME"
},
{
"description": "Phone number",
"name": "phone_number",
"data_type_name": "PHONE_NUMBER",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_nullable": true
}
]
}
{
"type": "PERSONS",
"name": "customers",
"properties": [
{
"description": "Date of birth",
"name": "date_of_birth",
"data_type_name": "DATE_OF_BIRTH",
"is_unique": false,
"is_index": false,
"is_substring_index": false,
"is_encrypted": true,
"is_nullable": true,
"is_builtin": false,
"is_readonly": false,
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
},
{
"description": "Email",
"name": "email",
"data_type_name": "EMAIL",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_encrypted": true,
"is_nullable": true,
"is_builtin": false,
"is_readonly": false,
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
},
{
"description": "First name",
"name": "first_name",
"data_type_name": "NAME",
"is_unique": false,
"is_index": false,
"is_substring_index": false,
"is_encrypted": true,
"is_nullable": false,
"is_builtin": false,
"is_readonly": false,
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
},
{
"description": "Last name",
"name": "last_name",
"data_type_name": "NAME",
"is_unique": false,
"is_index": false,
"is_substring_index": false,
"is_encrypted": true,
"is_nullable": false,
"is_builtin": false,
"is_readonly": false,
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
},
{
"description": "Phone number",
"name": "phone_number",
"data_type_name": "PHONE_NUMBER",
"is_unique": true,
"is_index": true,
"is_substring_index": false,
"is_encrypted": true,
"is_nullable": true,
"is_builtin": false,
"is_readonly": false,
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
}
],
"creation_time": "2022-12-01T10:04:42.777225Z",
"modification_time": "2022-12-01T10:04:42.777225Z"
}
customers PERSONS (
date_of_birth DATE_OF_BIRTH NULL COMMENT 'Date of birth',
email EMAIL NULL UNIQUE INDEX COMMENT 'Email',
first_name NAME COMMENT 'First name',
last_name NAME COMMENT 'Last name',
phone_number PHONE_NUMBER NULL UNIQUE INDEX COMMENT 'Phone number',
);
The request is invalid.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1001",
"message": "The access reason is missing.",
"context": {
"reason": null
}
}
Authentication credentials are incorrect or missing.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1005",
"message": "The request is unauthorized.",
"context": {}
}
The caller doesn't have the required access rights.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1007",
"message": "The operation is forbidden due to missing capabilities.",
"context": {
"username": "WebServer"
}
}
Reserved for future use.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1004",
"message": "The collection is not found.",
"context": {}
}
The operation is not allowed.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1026",
"message": "The operation is not allowed in in-memory mode.",
"context": {}
}
A conflict occurs.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV3218",
"message": "Concurrent conflicting updates to the same object.",
"context": {}
}
Access to a resource that is no longer available occurs.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1033",
"message": "The resource is gone.",
"context": {}
}
An error occurs on the server.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1000",
"message": "Something went wrong",
"context": {}
}
The service is unavailable.
- application/json
context
- object required*The error context.
Values of additional properties are stringsExample{
"objectid": "b56dd6aa-35f0-11ed-a261-0242ac120002"
}error_code
- string required*The error code.
message
- string required*The error message.
error_url
- stringThe URL to the error documentation.
{
"error_code": "PV1009",
"message": "The operation timed out on the server.",
"context": {}
}
Query parameters
Request body
Code examples