foliolib.folio.api.ldp.Ldp
- class foliolib.folio.api.ldp.Ldp(tenant: str)
Bases:
foliolib.folio.FolioApiLibrary Data Platform API
API calls to obtain information generated by the LDP
Base class of the Folio API
- Parameters
tenant (str) – Tenant id
Methods
get_columns(**kwargs)Return a list of all columns in a table.
get_config(key)Retrieve a single configuration by key
Return a list of configuration items
Return a list of all tables in all schemas
modify_config(key, config)Modify or add a configuration by key
set_query(query)Send a query to the LDP server and obtain results
set_report(report)POST /ldp/db/reports- get_columns(**kwargs)
Return a list of all columns in a table. Example: /ldp/db/columns?schema=public&table=user_users
GET /ldp/db/columns- Parameters
**kwargs (properties) – Keyword Arguments
- Keyword Arguments
schema (str) –
The name of the schema containing the specified table
Example
public
table (str) –
The name of the table within the specified schema
Example
user_users
- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A list of columns in an LDP table", "type": "array", "items": { "type": "object", "properties": { "columnName": { "type": "string", "description": "The name of a column within the specified table" }, "data_type": { "type": "string", "description": "The type of the column", "example": "boolean, character varying, timestamp with time zone" }, "ordinalPosition": { "type": "string", "description": "a small integer specifying ordinal position (though encoded as a string)" }, "tableSchema": { "type": "string", "description": "The schema containing the table containing this column" }, "tableName": { "type": "string", "description": "The table, within its schema, containing this column" } }, "additionalProperties": false, "required": [ "tableName", "tableSchema" ] } }
- get_config(key: str)
Retrieve a single configuration by key
GET /ldp/config/{key}- Parameters
key (str) –
- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A configuration entry for mod-ldp", "type": "object", "properties": { "key": { "type": "string", "description": "The key to the configuration value" }, "value": { "type": "string", "description": "The value of the configuration" } }, "additionalProperties": true, "required": [ "key", "value" ] }
- get_configs()
Return a list of configuration items
GET /ldp/config- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A list of configuration records", "type": "array", "items": { "type": "object", "$ref": "configuration.json" } }
- get_tables()
Return a list of all tables in all schemas
GET /ldp/db/tables- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A collection of LDP table-and-schema pairs", "type": "array", "items": { "type": "object", "properties": { "tableName": { "type": "string", "description": "The name of a table within an LDP schema" }, "tableSchema": { "type": "string", "description": "The name of the LDP schema containing the table" } }, "additionalProperties": false, "required": [ "tableName", "tableSchema" ] } }
- modify_config(key: str, config: dict)
Modify or add a configuration by key
PUT /ldp/config/{key}- Parameters
key (str) –
config (dict) – See Schema below
- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A configuration entry for mod-ldp", "type": "object", "properties": { "key": { "type": "string", "description": "The key to the configuration value" }, "value": { "type": "string", "description": "The value of the configuration" } }, "additionalProperties": true, "required": [ "key", "value" ] }
- set_query(query: dict)
Send a query to the LDP server and obtain results
POST /ldp/db/query- Parameters
query (dict) – See Schema below
- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A query to send to the LDP", "type": "object", "properties": { "tables": { "type": "array", "description": "A currently redundant wrapper", "items": { "type": "object", "properties": { "schema": { "type": "string", "description": "The LDP schema containing the table to query" }, "tableName": { "type": "string", "description": "The table to query" }, "columnFilters": { "type": "array", "description": "A set of conditions which result rows must satisfy", "items": { "type": "object", "description": "A single condition which result rows must satisfy", "properties": { "key": { "type": "string", "description": "The name of a column within the specified table" }, "value": { "type": "string", "description": "The value that the specified column must match" } }, "additionalProperties": false, "required": [ "key", "value" ] } }, "showColumns": { "type": "array", "description": "An ordered list of column to include in the results", "items": { "type": "string", "description": "The name of a column within the specified table" } }, "orderBy": { "type": "array", "description": "An ordered list of criteria to sort be", "items": { "type": "object", "description": "A single sorting criterion", "properties": { "key": { "type": "string", "description": "The name of a column within the specified table" }, "direction": { "type": "string", "enum": [ "asc", "desc" ], "description": "Indication of which direction to sort this column [default: 'asc']" }, "nulls": { "type": "string", "enum": [ "start", "end" ], "description": "Indication of where null values should sort [default: 'end']" } }, "additionalProperties": false, "required": [ "key" ] } }, "limit": { "type": [ "integer", "string" ], "description": "The maximum number of rows to return" } }, "additionalProperties": false, "required": [ "schema", "tableName" ] } } }, "additionalProperties": false, "required": [ "tables" ] }
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A set of results from an LDP query", "type": "array", "items": { "type": "object", "properties": {}, "additionalProperties": true } }
- set_report(report: dict)
POST /ldp/db/reports- Parameters
report (dict) – See Schema below
- Returns
See Schema below
- Return type
dict
Schema
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "A report template with parameters to send to the LDP", "type": "object", "properties": { "url": { "type": "string", "description": "The remote URL of the SQL template to fetch" }, "params": { "type": "object", "description": "The parameters that the SQL template function will be called with", "additionalProperties": { "type": "string" } }, "limit": { "type": [ "integer", "string" ], "description": "The limit on how many records will be returned in a response" } }, "additionalProperties": false, "required": [ "url", "params" ] }
{ "$schema": "http://json-schema.org/draft-04/schema#", "description": "The result from an LDP template query", "type": "object", "properties": { "records": { "type": "array", "description": "The returned rows", "items": { "type": "object", "properties": {}, "additionalProperties": true } }, "totalRecords": { "type": "integer", "description": "The number of rows returned" } }, "additionalProperties": false, "required": [ "records", "totalRecords" ] }