roboto.query.api#

Module Contents#

class roboto.query.api.QualifiedRoboqlQuery(/, **data)#

Bases: pydantic.BaseModel

A RoboQL query which has been qualified with a target.

Parameters:

data (Any)

query: str = None#
target: QueryTarget = None#
class roboto.query.api.QueryContentMode#

Bases: roboto.compat.StrEnum

Hint to query APIs on whether to return Roboto entities with custom metadata.

In RecordOnly mode, Roboto entities are returned without custom metadata, ensuring a smaller and more predictable response size. Use this mode when you need lower query latency, larger result page sizes, or both.

In RecordWithMeta mode, Roboto entities are returned with all available custom metadata. Use this mode if you need immediate access to metadata fields.

Note: content mode support is initially available for dataset queries, and will be added incrementally for other entity types.

RecordOnly = 'record_only'#

Query results are returned with core Roboto data attributes only.

Those attributes establish the identity and function of Roboto entities.

RecordWithMeta = 'record_with_meta'#

Query results are returned with all available entity attributes.

This includes core Roboto data attributes as well as custom metadata.

class roboto.query.api.QueryContext(/, **data)#

Bases: pydantic.BaseModel

Context for a query

Parameters:

data (Any)

query: dict[str, Any] = None#
query_scheme: QueryScheme#
class roboto.query.api.QueryRecord(/, **data)#

Bases: pydantic.BaseModel

A wire-transmissible representation of a query.

Parameters:

data (Any)

modified: datetime.datetime = None#
org_id: str = None#
query_ctx: QueryContext = None#
query_id: str = None#
result_count: int = None#
status: QueryStatus = None#
submitted: datetime.datetime = None#
submitted_by: str = None#
target: QueryTarget = None#
class roboto.query.api.QueryScheme#

Bases: roboto.compat.StrEnum

A specific query format/schema which can be used in combination with some context JSON to provide all information required to execute a query.

QuerySpecV1 = 'query_spec_v1'#

The initial variant of roboto.query.QuerySpecification which powered search since mid 2023.

class roboto.query.api.QueryStatus(*args, **kwds)#

Bases: enum.Enum

The query lifecycle state of a given query.

Failed = 'failed'#

Indicates the query failed to execute.

ResultsAvailable = 'results_available'#

Indicates that query results are available for clients to retrieve.

Results might be available immediately, such as in paginated database search, or once a (potentially expensive) calculation completes for more advanced search modalities.

Scheduled = 'scheduled'#

Indicates the query is scheduled for execution.

class roboto.query.api.QueryStorageContext(/, **data)#

Bases: pydantic.BaseModel

Context for query storage

Parameters:

data (Any)

storage_ctx: dict[str, Any] = None#
storage_scheme: QueryStorageScheme#
class roboto.query.api.QueryStorageScheme#

Bases: roboto.compat.StrEnum

A specific query result storage format/schema which can be used in combination with some context JSON to provide all information required to vend query results

S3ManifestV1 = 's3_manifest_v1'#

Query results are in S3, and a manifest file enumerates the result parts and how to resolve them into rows.

class roboto.query.api.QueryTarget#

Bases: roboto.compat.StrEnum

The type of resource a specific query is requesting.

Collections = 'collections'#
Datasets = 'datasets'#
Events = 'events'#
Files = 'files'#
TopicMessagePaths = 'topic_message_paths'#
Topics = 'topics'#
class roboto.query.api.SubmitRoboqlQueryRequest(/, **data)#

Bases: pydantic.BaseModel

Request payload to submit a RoboQL query

Parameters:

data (Any)

content_mode: QueryContentMode = None#
query: str | None = None#
target: QueryTarget = None#
class roboto.query.api.SubmitStructuredQueryRequest(/, **data)#

Bases: pydantic.BaseModel

Request payload to submit a structured query

Parameters:

data (Any)

content_mode: QueryContentMode = None#
query: roboto.query.specification.QuerySpecification = None#
target: QueryTarget = None#
class roboto.query.api.SubmitTermQueryRequest(/, **data)#

Bases: pydantic.BaseModel

Request payload to submit a simple term query

Parameters:

data (Any)

content_mode: QueryContentMode = None#
target: QueryTarget = None#
term: str = None#