# Books

Browse and search books, concepts, procedures, connections, and triggers.

## View Books

> This endpoint returns metadata for all books that are currently available\
> in the runtime, including their names, versions, descriptions, authentication\
> requirements, and capabilities.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBooksResponse":{"type":"object","properties":{"books":{"type":"array","items":{"$ref":"#/components/schemas/v2BookDescriptor"},"title":"All the books that satisfy the query"},"next_page_token":{"type":"string","description":"The token to use to retrieve the next page of books."}}},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books":{"get":{"summary":"View Books","description":"This endpoint returns metadata for all books that are currently available\nin the runtime, including their names, versions, descriptions, authentication\nrequirements, and capabilities.","operationId":"ListBooks","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBooksResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"page_size","description":"The maximum number of books to return.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page_token","description":"The token to use to retrieve the next page of books.","in":"query","required":false,"schema":{"type":"string"}},{"name":"filter","description":"AIP-160 Filter expression\nhttps://google.aip.dev/160","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Book Details

> This endpoint provides comprehensive metadata about a particular book,\
> including its description, author, icon, authentication mechanisms,\
> configuration parameters, and capabilities.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookResponse":{"type":"object","properties":{"book":{"$ref":"#/components/schemas/v2BookDescriptor"}}},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books/{name}/{version}":{"get":{"summary":"View Book Details","description":"This endpoint provides comprehensive metadata about a particular book,\nincluding its description, author, icon, authentication mechanisms,\nconfiguration parameters, and capabilities.","operationId":"GetBook","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Book Procedures

> This endpoint returns a list of all procedures (functions/operations) that\
> can be invoked on the specified book, along with their signatures, input/output\
> parameters, and metadata such as descriptions and examples.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookProceduresResponse":{"type":"object","properties":{"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Available procedures"}},"title":"Retrieve all the available signatures for a book"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books/{name}/{version}/procedures":{"get":{"summary":"View Book Procedures","description":"This endpoint returns a list of all procedures (functions/operations) that\ncan be invoked on the specified book, along with their signatures, input/output\nparameters, and metadata such as descriptions and examples.","operationId":"ListBookProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Tags

> This endpoint returns a consolidated list of all tags used across all books\
> in the library. Tags are used for categorizing and organizing books by\
> functionality, domain, or other characteristics.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveTagsResponse":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string"},"title":"Tags"}},"title":"Response to retrieve tags"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/tags":{"get":{"summary":"View Tags","description":"This endpoint returns a consolidated list of all tags used across all books\nin the library. Tags are used for categorizing and organizing books by\nfunctionality, domain, or other characteristics.","operationId":"ListTags","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveTagsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"tags":["Books"]}}}}
```

## View Latest Books

> This endpoint returns metadata for all books that are currently available\
> in the runtime, including their names, versions, descriptions, authentication\
> requirements, and capabilities.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBooksResponse":{"type":"object","properties":{"books":{"type":"array","items":{"$ref":"#/components/schemas/v2BookDescriptor"},"title":"All the books that satisfy the query"},"next_page_token":{"type":"string","description":"The token to use to retrieve the next page of books."}}},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books:latest":{"get":{"summary":"View Latest Books","description":"This endpoint returns metadata for all books that are currently available\nin the runtime, including their names, versions, descriptions, authentication\nrequirements, and capabilities.","operationId":"ListLatestBooks","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBooksResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"page_size","description":"The maximum number of books to return.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page_token","description":"The token to use to retrieve the next page of books.","in":"query","required":false,"schema":{"type":"string"}},{"name":"filter","description":"AIP-160 Filter expression\nhttps://google.aip.dev/160","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Book Versions

> This endpoint returns a list of all version strings available for the\
> specified book name.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookVersionsResponse":{"type":"object","properties":{"versions":{"type":"array","items":{"type":"string"},"title":"All available versions for the specified book"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books/{name}/versions":{"get":{"summary":"View Book Versions","description":"This endpoint returns a list of all version strings available for the\nspecified book name.","operationId":"ListBookVersions","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookVersionsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Book Concepts

> This endpoint returns a list of concept descriptors defined by the\
> specified book, which can be referenced by procedures as inputs or outputs.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookConceptsResponse":{"type":"object","properties":{"concepts":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Available concepts"}},"title":"Retrieve all the available concept descriptors for a book"},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/books/{name}/{version}/concepts":{"get":{"summary":"View Book Concepts","description":"This endpoint returns a list of concept descriptors defined by the\nspecified book, which can be referenced by procedures as inputs or outputs.","operationId":"ListBookConcepts","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookConceptsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Workspace Books

> This endpoint returns metadata for all books that are currently available\
> in the runtime for the specified workspace, including their names, versions,\
> descriptions, authentication requirements, and capabilities.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBooksResponse":{"type":"object","properties":{"books":{"type":"array","items":{"$ref":"#/components/schemas/v2BookDescriptor"},"title":"All the books that satisfy the query"},"next_page_token":{"type":"string","description":"The token to use to retrieve the next page of books."}}},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books":{"get":{"summary":"View Workspace Books","description":"This endpoint returns metadata for all books that are currently available\nin the runtime for the specified workspace, including their names, versions,\ndescriptions, authentication requirements, and capabilities.","operationId":"ListWorkspaceBooks","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBooksResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page_size","description":"The maximum number of books to return.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page_token","description":"The token to use to retrieve the next page of books.","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Workspace Book Procedures

> This endpoint returns a list of all procedures (functions/operations) that\
> can be invoked on the specified book in the workspace, along with their signatures,\
> input/output parameters, and metadata such as descriptions and examples.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookProceduresResponse":{"type":"object","properties":{"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Available procedures"}},"title":"Retrieve all the available signatures for a book"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{name}/{version}/procedures":{"get":{"summary":"View Workspace Book Procedures","description":"This endpoint returns a list of all procedures (functions/operations) that\ncan be invoked on the specified book in the workspace, along with their signatures,\ninput/output parameters, and metadata such as descriptions and examples.","operationId":"ListWorkspaceBookProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Workspace Book Concepts

> This endpoint returns a list of concept descriptors defined by the\
> specified book in the workspace, which can be referenced by procedures as inputs or outputs.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookConceptsResponse":{"type":"object","properties":{"concepts":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Available concepts"}},"title":"Retrieve all the available concept descriptors for a book"},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{name}/{version}/concepts":{"get":{"summary":"View Workspace Book Concepts","description":"This endpoint returns a list of concept descriptors defined by the\nspecified book in the workspace, which can be referenced by procedures as inputs or outputs.","operationId":"ListWorkspaceBookConcepts","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookConceptsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"name","in":"path","required":true,"schema":{"type":"string"}},{"name":"version","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Connection Discoverables

> This endpoint returns a list of entities (like database tables, API endpoints,\
> file systems, etc.) that can be discovered from a specific book connection\
> and potentially converted into executable procedures.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveDiscoverablesResponse":{"type":"object","properties":{"discoverables":{"type":"array","items":{"$ref":"#/components/schemas/v2Discoverable"},"title":"The retrieved Discoverables"}},"title":"The response to a get discoverables request"},"v2Discoverable":{"type":"object","properties":{"name":{"type":"string","title":"The name of the discoverable"},"description":{"type":"string","title":"The description of the discoverable"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/discoverables":{"get":{"summary":"View Connection Discoverables","description":"This endpoint returns a list of entities (like database tables, API endpoints,\nfile systems, etc.) that can be discovered from a specific book connection\nand potentially converted into executable procedures.","operationId":"ListWorkspaceBookConnectionDiscoverables","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveDiscoverablesResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"search","description":"A search term to filter the discoverables","in":"query","required":false,"schema":{"type":"string"}},{"name":"offset","description":"The starting point within the data set from which records will be returned.\nUsed for pagination.","in":"query","required":false,"schema":{"type":"string","format":"uint64"}},{"name":"limit","description":"The maximum number of records to return from the data set.\nUsed for pagination.","in":"query","required":false,"schema":{"type":"string","format":"uint64"}}],"tags":["Books"]}}}}
```

## Search Book Procedures

> This endpoint returns ranked procedures that best match the provided query.\
> Each result includes the owning book name and version, a full procedure descriptor,\
> and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchBookProceduresResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchBookProcedureMatch"},"title":"Ranked list of matches for the given query"}},"title":"Search results for book procedures"},"v2SearchBookProcedureMatch":{"type":"object","properties":{"book_name":{"type":"string","title":"Book name owning the procedure"},"book_version":{"type":"string","title":"Book version owning the procedure"},"procedure":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"}},"title":"A match result for a searched procedure"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"v2SearchBookProceduresRequest":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against procedure metadata and signatures"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for procedures across all available books"}}},"paths":{"/api/v1/procedures:search":{"post":{"summary":"Search Book Procedures","description":"This endpoint returns ranked procedures that best match the provided query.\nEach result includes the owning book name and version, a full procedure descriptor,\nand a relevance score.","operationId":"SearchBookProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBookProceduresRequest"}}},"required":true},"tags":["Books"]}}}}
```

## Search Books

> This endpoint returns ranked books that best match the provided query.\
> Each result includes a full book descriptor and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchBooksResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchBookMatch"},"title":"Ranked list of book matches for the given query"}},"title":"Search results for books"},"v2SearchBookMatch":{"type":"object","properties":{"book":{"$ref":"#/components/schemas/v2BookDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"}},"title":"A match result for a searched book"},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"v2SearchBooksRequest":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against book name, version, tags, or descriptions"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for books across the library"}}},"paths":{"/api/v1/books:search":{"post":{"summary":"Search Books","description":"This endpoint returns ranked books that best match the provided query.\nEach result includes a full book descriptor and a relevance score.","operationId":"SearchBooks","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBooksResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBooksRequest"}}},"required":true},"tags":["Books"]}}}}
```

## Search Book Concepts

> This endpoint returns ranked concepts that best match the provided query.\
> Each result includes the owning book name, version, a full concept descriptor, and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchBookConceptsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchBookConceptMatch"},"title":"Ranked list of concept matches for the given query"}},"title":"Search results for book concepts"},"v2SearchBookConceptMatch":{"type":"object","properties":{"book_name":{"type":"string","title":"Book name containing the concept"},"book_version":{"type":"string","title":"Book version containing the concept"},"concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"}},"title":"A match result for a searched concept"},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"v2SearchBookConceptsRequest":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against concept names and descriptions"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for concepts across all available books"}}},"paths":{"/api/v1/concepts:search":{"post":{"summary":"Search Book Concepts","description":"This endpoint returns ranked concepts that best match the provided query.\nEach result includes the owning book name, version, a full concept descriptor, and a relevance score.","operationId":"SearchBookConcepts","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBookConceptsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBookConceptsRequest"}}},"required":true},"tags":["Books"]}}}}
```

## Search Workspace Book Procedures

> This endpoint returns ranked procedures that best match the provided query.\
> Each result includes the owning book name and version, a full procedure descriptor,\
> and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchWorkspaceBookProceduresResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchWorkspaceBookProcedureMatch"},"title":"Ranked list of matches for the given query"}},"title":"Search results for workspace book procedures (static and discovered)"},"v2SearchWorkspaceBookProcedureMatch":{"type":"object","properties":{"book_name":{"type":"string","title":"Book name owning the procedure"},"book_version":{"type":"string","title":"Book version owning the procedure"},"procedure":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"},"organization_id":{"type":"string","title":"Organization ID"},"workspace_id":{"type":"string","title":"Workspace ID"},"connection_id":{"type":"string","title":"Connection ID"}},"title":"A match result for a searched procedure (static or discovered)"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SearchWorkspaceBookProceduresBody":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against procedure metadata and signatures"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for procedures across all available books in a workspace"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/procedures:search":{"post":{"summary":"Search Workspace Book Procedures","description":"This endpoint returns ranked procedures that best match the provided query.\nEach result includes the owning book name and version, a full procedure descriptor,\nand a relevance score.","operationId":"SearchWorkspaceBookProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchWorkspaceBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchWorkspaceBookProceduresBody"}}},"required":true},"tags":["Books"]}}}}
```

## Search Connection Procedures

> This endpoint returns ranked procedures that best match the provided query.\
> Each result includes the owning book name and version, a full procedure descriptor,\
> and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchWorkspaceBookProceduresResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchWorkspaceBookProcedureMatch"},"title":"Ranked list of matches for the given query"}},"title":"Search results for workspace book procedures (static and discovered)"},"v2SearchWorkspaceBookProcedureMatch":{"type":"object","properties":{"book_name":{"type":"string","title":"Book name owning the procedure"},"book_version":{"type":"string","title":"Book version owning the procedure"},"procedure":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"},"organization_id":{"type":"string","title":"Organization ID"},"workspace_id":{"type":"string","title":"Workspace ID"},"connection_id":{"type":"string","title":"Connection ID"}},"title":"A match result for a searched procedure (static or discovered)"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SearchWorkspaceBookConnectionProceduresBody":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against procedure metadata and signatures"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for procedures across all available books in a connection"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/procedures:search":{"post":{"summary":"Search Connection Procedures","description":"This endpoint returns ranked procedures that best match the provided query.\nEach result includes the owning book name and version, a full procedure descriptor,\nand a relevance score.","operationId":"SearchWorkspaceBookConnectionProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchWorkspaceBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchWorkspaceBookConnectionProceduresBody"}}},"required":true},"tags":["Books"]}}}}
```

## Search Workspace Books

> This endpoint returns ranked books that best match the provided query.\
> Each result includes a full book descriptor and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchBooksResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchBookMatch"},"title":"Ranked list of book matches for the given query"}},"title":"Search results for books"},"v2SearchBookMatch":{"type":"object","properties":{"book":{"$ref":"#/components/schemas/v2BookDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"}},"title":"A match result for a searched book"},"v2BookDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"@deprecated, use name and version to uniquely identify a book","title":"The identifier of the book (a.k.a integration_id)"},"name":{"type":"string","title":"The name of the book"},"short_description":{"type":"string","title":"Short description of the book"},"long_description":{"type":"string","title":"Short description of the book"},"author":{"type":"string","title":"Author of the book"},"icon":{"type":"string","format":"byte","title":"Icon of the book in an image format that is web-compatible (i.e. JPG, PNG, SVG, WebP)"},"version":{"type":"string","title":"Version of the book"},"authentications":{"type":"array","items":{"$ref":"#/components/schemas/v2BookAuthenticationDescriptor"},"title":"Authentication mechanism for a book version"},"configurations":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book. Note: replaced by config_map"},"display_name":{"type":"string","title":"Display name of the book"},"endpoint":{"type":"string","title":"URI location of the book, such as lambda://microsoft/1.0.4"},"connection_required":{"type":"boolean","description":"Connection Required. True if all procedures always require a connection."},"discover_capable":{"type":"boolean","title":"True if the book is capable of discovering book procedures"},"tags":{"type":"array","items":{"type":"string"},"title":"Tags associated with the book"},"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Book procedures"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"userinfo_capable":{"type":"boolean","title":"True if the book is capable of returning oauth user's info"},"triggers":{"type":"array","items":{"$ref":"#/components/schemas/v2BookTriggerDescriptor"},"title":"Book triggers"},"bdk_runtime_version":{"type":"string","title":"BDK Runtime version"},"environment_information":{"$ref":"#/components/schemas/bdkV2EnvironmentInformation"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the parameters available for configuring the behaviour of this book"},"hidden":{"type":"boolean","title":"True if the book is hidden"},"polls":{"type":"array","items":{"$ref":"#/components/schemas/v2BookPollDescriptor"},"title":"Book polls"}}},"v2BookAuthenticationDescriptor":{"type":"object","properties":{"custom":{"$ref":"#/components/schemas/v2BookCustomAuthenticationDescriptor"},"oauth":{"$ref":"#/components/schemas/v2BookOAuthAuthenticationDescriptor"}}},"v2BookCustomAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credentials required to perform authentication"},"description":{"type":"string","title":"A description of the authentication"},"name":{"type":"string","title":"A name for the authentication"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2CredentialDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"type":{"$ref":"#/components/schemas/v2CredentialType"},"label":{"type":"string","title":"Label that will be displayed to the user during configuration of the book"},"visible":{"type":"boolean","description":"True if the value is visible to the book, false otherwise."},"description":{"type":"string","title":"Description"}}},"v2CredentialType":{"type":"string","enum":["CredentialTypeText","CredentialTypeSensitiveText"],"default":"CredentialTypeText","title":"Supported configuration types"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2BookOAuthAuthenticationDescriptor":{"type":"object","properties":{"id":{"type":"string","description":"Since books can have multiple authentication mechanisms there is\nand ID to differentiate each mechanism."},"provider":{"$ref":"#/components/schemas/v2OAuthProvider"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthFlow"},"title":"Supported OAuth flows"},"authorize_endpoint":{"type":"string","title":"Authorize endpoint"},"token_endpoint":{"type":"string","title":"Token endpoint"},"scope":{"type":"array","items":{"type":"string"},"title":"Scopes"},"name":{"type":"string","title":"A name for the authentication"},"arguments":{"type":"array","items":{"$ref":"#/components/schemas/v2OAuthArgumentDescriptor"},"title":"Additional arguments which are not part of the OAuth specification\nbut are required for the authentication to work (such as tenant_id)"},"credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialDescriptor"},"title":"Credential descriptors"},"preferred":{"type":"boolean","title":"If this is a preferred authentication method"}}},"v2OAuthProvider":{"type":"string","enum":["OAuthProviderMicrosoft","OAuthProviderGoogle","OAuthProviderGeneric"],"default":"OAuthProviderMicrosoft","title":"Supported OAuth providers"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"},"v2OAuthArgumentDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the parameter"},"name":{"type":"string","title":"Name of the parameter"},"description":{"type":"string","title":"Description of the parameter"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2BookTriggerDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger"},"name":{"type":"string","title":"The name of the trigger"},"description":{"type":"string","title":"Description of the trigger"},"setup_description":{"type":"string","title":"Setup description for the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the trigger"},"filter_capable":{"type":"boolean","title":"True if the trigger is capable of filtering events"},"is_manual":{"type":"boolean","title":"True if the trigger is manually invoked"},"event_type":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Event type schema for the trigger"},"is_shared_endpoint":{"type":"boolean","description":"True if every trigger instance of this trigger shares the same endpoint when configured."}}},"bdkV2EnvironmentInformation":{"type":"object","properties":{"version":{"type":"string"},"runtime_name":{"type":"string","title":"Runtime name"},"runtime_version":{"type":"string","title":"Runtime version"},"bci_protocol_version":{"type":"string","title":"BCI Protocol version"},"api_version":{"type":"string","title":"BDK API Version"},"path":{"type":"array","items":{"type":"string"},"title":"Book path under which books will be discovered"}},"title":"Information about the environment"},"v2BookPollDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the poll"},"name":{"type":"string","title":"The name of the poll"},"description":{"type":"string","title":"Description of the poll"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"Configuration parameters for the poll"},"stop_function_name":{"type":"string","title":"Required stop function name"},"output_concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SearchWorkspaceBooksBody":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against book name, version, tags, or descriptions"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for books across the library in a workspace"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books:search":{"post":{"summary":"Search Workspace Books","description":"This endpoint returns ranked books that best match the provided query.\nEach result includes a full book descriptor and a relevance score.","operationId":"SearchWorkspaceBooks","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBooksResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchWorkspaceBooksBody"}}},"required":true},"tags":["Books"]}}}}
```

## Search Workspace Book Concepts

> This endpoint returns ranked concepts that best match the provided query.\
> Each result includes the owning book name, version, a full concept descriptor, and a relevance score.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SearchBookConceptsResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/v2SearchBookConceptMatch"},"title":"Ranked list of concept matches for the given query"}},"title":"Search results for book concepts"},"v2SearchBookConceptMatch":{"type":"object","properties":{"book_name":{"type":"string","title":"Book name containing the concept"},"book_version":{"type":"string","title":"Book version containing the concept"},"concept":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"score":{"type":"number","format":"double","title":"Relevance score (higher is better)"}},"title":"A match result for a searched concept"},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SearchWorkspaceBookConceptsBody":{"type":"object","properties":{"query":{"type":"string","title":"Free-text search query to match against concept names and descriptions"},"top_k":{"type":"integer","format":"int64","title":"Maximum number of results to return"},"max_distance":{"type":"number","format":"float","title":"Maximum distance threshold for similarity matching"}},"title":"Search for concepts across all available books in a workspace"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/concepts:search":{"post":{"summary":"Search Workspace Book Concepts","description":"This endpoint returns ranked concepts that best match the provided query.\nEach result includes the owning book name, version, a full concept descriptor, and a relevance score.","operationId":"SearchWorkspaceBookConcepts","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SearchBookConceptsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchWorkspaceBookConceptsBody"}}},"required":true},"tags":["Books"]}}}}
```

## View Book Connections

> This endpoint returns a list of all connections of a book version.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookConnectionsResponse":{"type":"object","properties":{"book_connections":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"title":"The list of book connections"},"next_page_token":{"type":"string","description":"The token to use to retrieve the next page of connections."}}},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{book_name}/{book_version}/connections":{"get":{"summary":"View Book Connections","description":"This endpoint returns a list of all connections of a book version.","operationId":"ListWorkspaceBookConnections","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookConnectionsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_version","in":"path","required":true,"schema":{"type":"string"}},{"name":"page_size","description":"The maximum number of connections to return.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page_token","description":"The token to use to retrieve the next page of connections.","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## Create Book Connection

> This endpoint adds a new book connection, which can be used to invoke\
> procedures on the book.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2BookConnectionResponse":{"type":"object","properties":{"book_connection_descriptor":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"authorize_url":{"$ref":"#/components/schemas/v2BookConnectionOAuthURLResponse"}},"title":"The response to an add/update book connection request"},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"v2BookConnectionOAuthURLResponse":{"type":"object","properties":{"url":{"type":"string","title":"The URL to kick off the OAuth flow. It contains:\n- The authorize endpoint\n- The state\n- The scope\n- The redirect uri"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"AddWorkspaceBookConnectionBody":{"type":"object","properties":{"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configuration for the connection"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"oauth_flow":{"$ref":"#/components/schemas/v2OAuthFlow"}},"title":"The book connection to add"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{book_name}/{book_version}/connections":{"post":{"summary":"Create Book Connection","description":"This endpoint adds a new book connection, which can be used to invoke\nprocedures on the book.","operationId":"AddWorkspaceBookConnection","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2BookConnectionResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_version","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceBookConnectionBody"}}},"required":true},"tags":["Books"]}}}}
```

## Update Book Connection

> This endpoint updates a book connection in the library.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2BookConnectionResponse":{"type":"object","properties":{"book_connection_descriptor":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"authorize_url":{"$ref":"#/components/schemas/v2BookConnectionOAuthURLResponse"}},"title":"The response to an add/update book connection request"},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"v2BookConnectionOAuthURLResponse":{"type":"object","properties":{"url":{"type":"string","title":"The URL to kick off the OAuth flow. It contains:\n- The authorize endpoint\n- The state\n- The scope\n- The redirect uri"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"UpdateWorkspaceBookConnectionBody":{"type":"object","properties":{"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Input config"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"oauth_flow":{"$ref":"#/components/schemas/v2OAuthFlow"}},"title":"The book connection to update"},"v2OAuthFlow":{"type":"string","enum":["OAuthFlowAuthorizationCode","OAuthFlowClientCredentials"],"default":"OAuthFlowAuthorizationCode","title":"Supported OAuth flows"}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{book_name}/{book_version}/connections/{connection_id}":{"put":{"summary":"Update Book Connection","description":"This endpoint updates a book connection in the library.","operationId":"UpdateWorkspaceBookConnection","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2BookConnectionResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_version","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceBookConnectionBody"}}},"required":true},"tags":["Books"]}}}}
```

## View Connection

> This endpoint returns a specific book connection.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookConnectionResponse":{"type":"object","properties":{"book_connection":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"}}},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}":{"get":{"summary":"View Connection","description":"This endpoint returns a specific book connection.","operationId":"GetWorkspaceBookConnection","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookConnectionResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## GET /api/v1/organizations/{organization\_id}/workspaces/{workspace\_id}/connections

> View All Connections

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBooksConnectionsResponse":{"type":"object","properties":{"book_connections":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"title":"The list of book connections"},"next_page_token":{"type":"string","description":"The token to use to retrieve the next page of connections."}}},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections":{"get":{"summary":"View All Connections","operationId":"ListAllWorkspaceBookConnections","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBooksConnectionsResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page_size","description":"The maximum number of connections to return.","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"page_token","description":"The token to use to retrieve the next page of connections.","in":"query","required":false,"schema":{"type":"string"}},{"name":"filter","description":"AIP-160 Filtering\nhttps://google.aip.dev/160","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## Upgrade Book Connection

> This endpoint upgrades a book connection to a new version.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2BookConnectionResponse":{"type":"object","properties":{"book_connection_descriptor":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"authorize_url":{"$ref":"#/components/schemas/v2BookConnectionOAuthURLResponse"}},"title":"The response to an add/update book connection request"},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"v2BookConnectionOAuthURLResponse":{"type":"object","properties":{"url":{"type":"string","title":"The URL to kick off the OAuth flow. It contains:\n- The authorize endpoint\n- The state\n- The scope\n- The redirect uri"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"UpgradeWorkspaceBookConnectionBody":{"type":"object","properties":{"new_book_version":{"type":"string","title":"The new version to upgrade book to"}}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{book_name}/{book_version}/connections/{connection_id}/upgrade":{"put":{"summary":"Upgrade Book Connection","description":"This endpoint upgrades a book connection to a new version.","operationId":"UpgradeWorkspaceBookConnection","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2BookConnectionResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_version","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeWorkspaceBookConnectionBody"}}},"required":true},"tags":["Books"]}}}}
```

## Authorize Connection

> This endpoint generates a new authrization url for an existing book connection.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2BookConnectionResponse":{"type":"object","properties":{"book_connection_descriptor":{"$ref":"#/components/schemas/v2BookConnectionDescriptor"},"authorize_url":{"$ref":"#/components/schemas/v2BookConnectionOAuthURLResponse"}},"title":"The response to an add/update book connection request"},"v2BookConnectionDescriptor":{"type":"object","properties":{"book_name":{"type":"string","title":"The name of the book"},"book_version":{"type":"string","title":"The version of the book"},"connection_id":{"type":"string","title":"The connection id of the book"},"connection_name":{"type":"string","title":"The connection name"},"authentication":{"$ref":"#/components/schemas/v2Authentication"},"config":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptValue"},"title":"Input config concepts. Note: replaced by config_map"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Label"},"title":"Labels associated with the connection"},"status":{"$ref":"#/components/schemas/v2BookConnectionStatus"},"endpoint":{"type":"string","title":"The endpoint of the connection"},"discovered":{"type":"array","items":{"type":"string"},"title":"The list of things that have been discovered"},"config_map":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configured values"}}},"v2Authentication":{"type":"object","properties":{"authentication_id":{"type":"string","title":"Identifier of the authentication method to be used for testing the connection"},"authentication_credentials":{"type":"array","items":{"$ref":"#/components/schemas/v2CredentialValue"},"title":"Credentials"}}},"v2CredentialValue":{"type":"object","properties":{"id":{"type":"string","title":"Id of the credential"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConceptValue":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"bdkV2Label":{"type":"object","properties":{"key":{"type":"string","title":"The key of the key-value pair"},"value":{"type":"string","title":"The value of the key-value pair"}}},"v2BookConnectionStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2BookConnectionState"},"state_category":{"$ref":"#/components/schemas/v2BookConnectionStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"},"conditions":{"type":"array","items":{"$ref":"#/components/schemas/v2BookConnectionCondition"},"title":"List of conditions that apply to the BookConnection"}},"title":"Status information for a BookConnection"},"v2BookConnectionState":{"type":"string","enum":["BOOK_CONNECTION_STATE_PENDING","BOOK_CONNECTION_STATE_READY","BOOK_CONNECTION_STATE_FAILED","BOOK_CONNECTION_STATE_CONDITIONS_NOT_MET","BOOK_CONNECTION_STATE_UNKNOWN"],"default":"BOOK_CONNECTION_STATE_PENDING","title":"Possible phases for a BookConnection (Pending, ConditionsNotMet, Ready, Failed, Unknown)"},"v2BookConnectionStateCategory":{"type":"string","enum":["BOOK_CONNECTION_STATE_CATEGORY_WARNING","BOOK_CONNECTION_STATE_CATEGORY_READY","BOOK_CONNECTION_STATE_CATEGORY_FAILED"],"default":"BOOK_CONNECTION_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"v2BookConnectionCondition":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/v2BookConnectionConditionType"},"status":{"$ref":"#/components/schemas/v2BookConnectionConditionStatus"},"last_transition_time":{"type":"string","title":"RFC 3339 timestamp of when this condition was last updated"},"reason":{"type":"string","title":"Brief reason explaining the condition"},"reason_code":{"$ref":"#/components/schemas/v2BookConnectionConditionReasonCode"}},"title":"Condition information for BookConnection"},"v2BookConnectionConditionType":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","BOOK_CONNECTION_CONDITION_TYPE_AUTHENTICATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_CONFIGURATION_VALID","BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY","BOOK_CONNECTION_CONDITION_TYPE_CREDENTIALS_VALID","BOOK_CONNECTION_CONDITION_TYPE_DISCOVER_READY","BOOK_CONNECTION_CONDITION_TYPE_TRIGGER_INSTANCES_READY","BOOK_CONNECTION_CONDITION_TYPE_COMPATIBLE_RUNTIME_VERSION"],"default":"BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID","description":"Represents the various condition types that can be associated with a BookConnection.\n\nConditions are categorized into two groups:\n\n1. [Static Conditions] These conditions are determined solely by the BookConnection's data structure\n   and configuration, and they can be validated without external dependencies or runtime state:\n   - BOOK_VALID\n   - AUTHENTICATION_VALID\n   - CONFIGURATION_VALID\n\n2. [Dynamic Conditions] These conditions depend on external factors and runtime state that can change\n   independently of the BookConnection spec. They require active monitoring and periodic re-evaluation:\n   - DEPLOYMENT_READY\n   - CREDENTIALS_VALID\n   - DISCOVER_READY\n   - TRIGGER_INSTANCES_READY\n   - COMPATIBLE_RUNTIME_VERSION\n\n - BOOK_CONNECTION_CONDITION_TYPE_BOOK_VALID: Static\n - BOOK_CONNECTION_CONDITION_TYPE_DEPLOYMENT_READY: Dynamic"},"v2BookConnectionConditionStatus":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_STATUS_TRUE","BOOK_CONNECTION_CONDITION_STATUS_FALSE","BOOK_CONNECTION_CONDITION_STATUS_UNKNOWN","BOOK_CONNECTION_CONDITION_STATUS_PENDING"],"default":"BOOK_CONNECTION_CONDITION_STATUS_TRUE","description":"Possible Values:\n - True: All good\n - False: An error occurred\n - Unknown: Condition not applicable/relevant\n - Pending: Underlying process (upon which the condition depends) still ongoing","title":"Status values for conditions"},"v2BookConnectionConditionReasonCode":{"type":"string","enum":["BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_MISSING_IMAGE","BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_RUNTIME_VERSION_OUTDATED","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_MISSING_CREDENTIAL","BOOK_CONNECTION_CONDITION_REASON_CODE_WRONG_CREDENTIAL_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_NOT_FOUND","BOOK_CONNECTION_CONDITION_REASON_CODE_SECRET_MISSING_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_REQUIRED_MISSING","BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_TEST_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_TOKEN_REFRESH_FAILED","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY","BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_WRONG_TYPE","BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO","BOOK_CONNECTION_CONDITION_REASON_CODE_NEW_DEPLOYMENT_ROLLED_OUT","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS","BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_FAILED"],"default":"BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED","description":"- BOOK_CONNECTION_CONDITION_REASON_CODE_BOOK_LOOKUP_FAILED: Book related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_AUTHENTICATION_ID_NOT_FOUND: Authentication related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_CONFIGURATION_UNKNOWN_KEY: Configuration related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_REPLICA_COUNT_IS_ZERO: Connection related\n - BOOK_CONNECTION_CONDITION_REASON_CODE_DISCOVER_IN_PROGRESS: Discover related","title":"Machine-readable reason codes for condition transitions"},"v2BookConnectionOAuthURLResponse":{"type":"object","properties":{"url":{"type":"string","title":"The URL to kick off the OAuth flow. It contains:\n- The authorize endpoint\n- The state\n- The scope\n- The redirect uri"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/authorize":{"put":{"summary":"Authorize Connection","description":"This endpoint generates a new authrization url for an existing book connection.","operationId":"AuthorizeWorkspaceBookConnection","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2BookConnectionResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## Discover Connection Procedures

> This endpoint allows books to discover and register new procedures\
> at runtime by connecting to external APIs, databases, or services.\
> The discovered procedures become available for invocation.\
> \
> Supports:\
> \- Specification of what entities to discover\
> \- Dynamic procedure registration\
> \
> Note: This will override any existing discoverables, and sending an empty list will remove all discoverables.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2DiscoverWorkspaceBookConnectionProceduresResponse":{"type":"object","title":"A response that is sent to reply to a library discovery request"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SetDiscoveredBody":{"type":"object","properties":{"what":{"type":"array","items":{"type":"string"},"title":"What should be discovered"}}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/discover":{"post":{"summary":"Discover Connection Procedures","description":"This endpoint allows books to discover and register new procedures\nat runtime by connecting to external APIs, databases, or services.\nThe discovered procedures become available for invocation.\n\nSupports:\n- Specification of what entities to discover\n- Dynamic procedure registration\n\nNote: This will override any existing discoverables, and sending an empty list will remove all discoverables.","operationId":"SetDiscovered","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2DiscoverWorkspaceBookConnectionProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDiscoveredBody"}}},"required":true},"tags":["Books"]}}}}
```

## View Connection Procedures

> This endpoint returns a list of all procedures (functions/operations) that\
> can be invoked on the specified book connection in the workspace, along with their signatures,\
> input/output parameters, and metadata such as descriptions and examples.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveBookProceduresResponse":{"type":"object","properties":{"procedures":{"type":"array","items":{"$ref":"#/components/schemas/v2BookProcedureDescriptor"},"title":"Available procedures"}},"title":"Retrieve all the available signatures for a book"},"v2BookProcedureDescriptor":{"type":"object","properties":{"id":{"type":"string","title":"Id of the procedure to use in subsequent calls"},"signature":{"$ref":"#/components/schemas/v2BookProcedureSignature"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the inputs for the procedure (required and non required)"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDescriptor"},"title":"All the outputs for the procedure"},"short_description":{"type":"string","title":"Short description"},"long_description":{"type":"string","title":"Longer description"},"filter_capable":{"type":"boolean","title":"Can this procedure filter its response?"},"page_capable":{"type":"boolean","title":"Can this procedure page its response?"},"connection_required":{"$ref":"#/components/schemas/v2ConnectionRequired"},"is_discovered":{"type":"boolean","title":"True if the procedure was discovered"},"questions":{"type":"array","items":{"$ref":"#/components/schemas/v2QuestionDescriptor"},"title":"Questions the procedure may ask"},"is_async":{"type":"boolean","title":"Does the procedure return a promise?"},"is_mutation":{"type":"boolean","title":"True if the procedures performs a mutating action"},"search_hints":{"type":"array","items":{"type":"string"},"title":"Search hints used for procedure resolution"}}},"v2BookProcedureSignature":{"type":"object","properties":{"english":{"type":"string"},"verbs":{"type":"array","items":{"type":"string"},"title":"Verb of the signature"},"object":{"$ref":"#/components/schemas/v2NounPhrases"},"preposition":{"type":"string","title":"Preposition"},"target":{"$ref":"#/components/schemas/v2NounPhrases"},"outputs":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrases"},"title":"Outputs"},"proper_nouns":{"type":"array","items":{"type":"string"},"title":"All the proper nouns that appear on this signature"}}},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2ConceptDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string","title":"Description"},"default_value":{"$ref":"#/components/schemas/bdkV2Value"}}},"v2ConceptType":{"type":"object","properties":{"scalar_type":{"$ref":"#/components/schemas/v2ConceptScalarType"},"optional_type":{"$ref":"#/components/schemas/v2ConceptOptionalType"},"list_type":{"$ref":"#/components/schemas/v2ConceptListType"},"dictionary_type":{"$ref":"#/components/schemas/v2ConceptDictionaryType"},"table_type":{"$ref":"#/components/schemas/v2ConceptTableType"},"opaque_type":{"$ref":"#/components/schemas/v2ConceptOpaqueType"},"any_type":{"$ref":"#/components/schemas/v2ConceptAnyType"},"union_type":{"$ref":"#/components/schemas/v2ConceptUnionType"},"self_type":{"$ref":"#/components/schemas/v2ConceptSelfType"},"sensitive_type":{"$ref":"#/components/schemas/v2ConceptSensitiveType"},"enum_type":{"$ref":"#/components/schemas/v2ConceptEnumType"}}},"v2ConceptScalarType":{"type":"string","enum":["ConceptScalarTypeConceptual","ConceptScalarTypeText","ConceptScalarTypeNumber","ConceptScalarTypeBoolean","ConceptScalarTypeDatetime","ConceptScalarTypeDate","ConceptScalarTypeTime","ConceptScalarTypeFile","ConceptScalarTypeUUID"],"default":"ConceptScalarTypeConceptual","title":"Supported concept types"},"v2ConceptOptionalType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptListType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptDictionaryType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptDictionaryTypeField"}},"description":{"type":"string"}}},"v2ConceptDictionaryTypeField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptTableType":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptTableTypeColumn"}},"description":{"type":"string"}}},"v2ConceptTableTypeColumn":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/v2ConceptType"},"description":{"type":"string"}}},"v2ConceptOpaqueType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"description":{"type":"string"}}},"v2ConceptAnyType":{"type":"object"},"v2ConceptUnionType":{"type":"object","properties":{"inners":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptType"}}}},"v2ConceptSelfType":{"type":"object"},"v2ConceptSensitiveType":{"type":"object","properties":{"inner":{"$ref":"#/components/schemas/v2ConceptType"}}},"v2ConceptEnumType":{"type":"object","properties":{"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}},"members":{"type":"array","items":{"$ref":"#/components/schemas/v2ConceptEnumTypeMember"}},"description":{"type":"string"}}},"v2ConceptEnumTypeMember":{"type":"object","properties":{"name":{"type":"string"},"noun_phrase":{"$ref":"#/components/schemas/v2NounPhrase"},"description":{"type":"string"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2ConnectionRequired":{"type":"string","enum":["Optional","Always","Never"],"default":"Optional","title":"Connection required"},"v2QuestionDescriptor":{"type":"object","properties":{"noun_phrases":{"$ref":"#/components/schemas/v2NounPhrases"},"type":{"$ref":"#/components/schemas/v2ConceptType"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/procedures":{"get":{"summary":"View Connection Procedures","description":"This endpoint returns a list of all procedures (functions/operations) that\ncan be invoked on the specified book connection in the workspace, along with their signatures,\ninput/output parameters, and metadata such as descriptions and examples.","operationId":"ListWorkspaceBookConnectionProcedures","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveBookProceduresResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## POST /api/v1/organizations/{organization\_id}/workspaces/{workspace\_id}/books/{book\_name}/{book\_version}/connections/{connection\_id}/triggers

> Create Trigger Instance

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2AddWorkspaceBookConnectionTriggerInstanceResponse":{"type":"object","properties":{"trigger_instance":{"$ref":"#/components/schemas/v2TriggerInstance"}}},"v2TriggerInstance":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger instance"},"name":{"type":"string","title":"The name of the trigger instance"},"reference":{"type":"string","title":"The reference of the trigger instance"},"book_name":{"type":"string","title":"The name of the book"},"connection_id":{"type":"string","title":"The identifier of the book connection"},"trigger_id":{"type":"string","title":"The name of the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configuration parameters for the trigger"},"endpoint":{"type":"string","title":"The endpoint of the trigger instance"},"automation_ids":{"type":"array","items":{"type":"string"},"title":"Automation IDs"},"workspace_id":{"type":"string","title":"Workspace ID"},"organization_id":{"type":"string","title":"Organization ID"},"filter_expression":{"$ref":"#/components/schemas/v2Expression"},"status":{"$ref":"#/components/schemas/v2TriggerInstanceStatus"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2Expression":{"type":"object","properties":{"binary_expression":{"$ref":"#/components/schemas/v2BinaryExpression"},"unary_expression":{"$ref":"#/components/schemas/v2UnaryExpression"},"value_expression":{"$ref":"#/components/schemas/bdkV2Value"},"noun_phrases_expression":{"$ref":"#/components/schemas/v2NounPhrases"}}},"v2BinaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2BinaryOperator"},"left":{"$ref":"#/components/schemas/v2Expression"},"right":{"$ref":"#/components/schemas/v2Expression"}}},"v2BinaryOperator":{"type":"string","enum":["BinaryOperatorAnd","BinaryOperatorOr","BinaryOperatorEquals","BinaryOperatorNotEquals","BinaryOperatorIn","BinaryOperatorHas","BinaryOperatorLessThan","BinaryOperatorGreaterThan","BinaryOperatorLessThanOrEqual","BinaryOperatorGreaterThanOrEqual"],"default":"BinaryOperatorAnd"},"v2UnaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2UnaryOperator"},"inner":{"$ref":"#/components/schemas/v2Expression"}}},"v2UnaryOperator":{"type":"string","enum":["UnaryOperatorNot","UnaryOperatorExists"],"default":"UnaryOperatorNot"},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2TriggerInstanceStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2TriggerInstanceState"},"state_category":{"$ref":"#/components/schemas/v2TriggerInstanceStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"}},"title":"Status information for a BookConnection"},"v2TriggerInstanceState":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_PENDING","TRIGGER_INSTANCE_STATE_READY","TRIGGER_INSTANCE_STATE_FAILED","TRIGGER_INSTANCE_STATE_UNKNOWN"],"default":"TRIGGER_INSTANCE_STATE_PENDING","title":"Possible phases for a TriggerInstance (Pending, Ready, Failed, Unknown)"},"v2TriggerInstanceStateCategory":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","TRIGGER_INSTANCE_STATE_CATEGORY_READY","TRIGGER_INSTANCE_STATE_CATEGORY_FAILED"],"default":"TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"AddWorkspaceBookConnectionTriggerInstanceBody":{"type":"object","properties":{"trigger_id":{"type":"string","title":"The name of the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configuration parameters for the trigger"},"filter_expression":{"$ref":"#/components/schemas/v2Expression"},"name":{"type":"string","title":"The name of the trigger instance"}}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/books/{book_name}/{book_version}/connections/{connection_id}/triggers":{"post":{"summary":"Create Trigger Instance","operationId":"AddWorkspaceBookConnectionTriggerInstance","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2AddWorkspaceBookConnectionTriggerInstanceResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_name","in":"path","required":true,"schema":{"type":"string"}},{"name":"book_version","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWorkspaceBookConnectionTriggerInstanceBody"}}},"required":true},"tags":["Books"]}}}}
```

## POST /api/v1/organizations/{organization\_id}/workspaces/{workspace\_id}/triggers/{trigger\_instance\_id}/automations

> Set Trigger Automations

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2SetAutomationsForTriggerInstanceResponse":{"type":"object","properties":{"trigger_instance":{"$ref":"#/components/schemas/v2TriggerInstance"}}},"v2TriggerInstance":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger instance"},"name":{"type":"string","title":"The name of the trigger instance"},"reference":{"type":"string","title":"The reference of the trigger instance"},"book_name":{"type":"string","title":"The name of the book"},"connection_id":{"type":"string","title":"The identifier of the book connection"},"trigger_id":{"type":"string","title":"The name of the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configuration parameters for the trigger"},"endpoint":{"type":"string","title":"The endpoint of the trigger instance"},"automation_ids":{"type":"array","items":{"type":"string"},"title":"Automation IDs"},"workspace_id":{"type":"string","title":"Workspace ID"},"organization_id":{"type":"string","title":"Organization ID"},"filter_expression":{"$ref":"#/components/schemas/v2Expression"},"status":{"$ref":"#/components/schemas/v2TriggerInstanceStatus"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2Expression":{"type":"object","properties":{"binary_expression":{"$ref":"#/components/schemas/v2BinaryExpression"},"unary_expression":{"$ref":"#/components/schemas/v2UnaryExpression"},"value_expression":{"$ref":"#/components/schemas/bdkV2Value"},"noun_phrases_expression":{"$ref":"#/components/schemas/v2NounPhrases"}}},"v2BinaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2BinaryOperator"},"left":{"$ref":"#/components/schemas/v2Expression"},"right":{"$ref":"#/components/schemas/v2Expression"}}},"v2BinaryOperator":{"type":"string","enum":["BinaryOperatorAnd","BinaryOperatorOr","BinaryOperatorEquals","BinaryOperatorNotEquals","BinaryOperatorIn","BinaryOperatorHas","BinaryOperatorLessThan","BinaryOperatorGreaterThan","BinaryOperatorLessThanOrEqual","BinaryOperatorGreaterThanOrEqual"],"default":"BinaryOperatorAnd"},"v2UnaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2UnaryOperator"},"inner":{"$ref":"#/components/schemas/v2Expression"}}},"v2UnaryOperator":{"type":"string","enum":["UnaryOperatorNot","UnaryOperatorExists"],"default":"UnaryOperatorNot"},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2TriggerInstanceStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2TriggerInstanceState"},"state_category":{"$ref":"#/components/schemas/v2TriggerInstanceStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"}},"title":"Status information for a BookConnection"},"v2TriggerInstanceState":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_PENDING","TRIGGER_INSTANCE_STATE_READY","TRIGGER_INSTANCE_STATE_FAILED","TRIGGER_INSTANCE_STATE_UNKNOWN"],"default":"TRIGGER_INSTANCE_STATE_PENDING","title":"Possible phases for a TriggerInstance (Pending, Ready, Failed, Unknown)"},"v2TriggerInstanceStateCategory":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","TRIGGER_INSTANCE_STATE_CATEGORY_READY","TRIGGER_INSTANCE_STATE_CATEGORY_FAILED"],"default":"TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}},"SetAutomationsForTriggerInstanceBody":{"type":"object","properties":{"automation_ids":{"type":"array","items":{"type":"string"},"title":"The identifiers of the automations to attach to the trigger instance"},"connection_id":{"type":"string","title":"The id of the book connection"}}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/triggers/{trigger_instance_id}/automations":{"post":{"summary":"Set Trigger Automations","operationId":"SetAutomationsForTriggerInstance","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2SetAutomationsForTriggerInstanceResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"trigger_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetAutomationsForTriggerInstanceBody"}}},"required":true},"tags":["Books"]}}}}
```

## DELETE /api/v1/organizations/{organization\_id}/workspaces/{workspace\_id}/connections/{connection\_id}/triggers/{trigger\_instance\_id}

> Delete Trigger Instance

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RemoveWorkspaceBookConnectionTriggerInstanceResponse":{"type":"object"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/triggers/{trigger_instance_id}":{"delete":{"summary":"Delete Trigger Instance","operationId":"RemoveWorkspaceBookConnectionTriggerInstance","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RemoveWorkspaceBookConnectionTriggerInstanceResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"trigger_instance_id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## GET /api/v1/organizations/{organization\_id}/workspaces/{workspace\_id}/triggers

> View Trigger Instances

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveWorkspaceTriggerInstancesResponse":{"type":"object","properties":{"trigger_instances":{"type":"array","items":{"$ref":"#/components/schemas/v2TriggerInstance"},"title":"The trigger instances"}}},"v2TriggerInstance":{"type":"object","properties":{"id":{"type":"string","title":"The identifier of the trigger instance"},"name":{"type":"string","title":"The name of the trigger instance"},"reference":{"type":"string","title":"The reference of the trigger instance"},"book_name":{"type":"string","title":"The name of the book"},"connection_id":{"type":"string","title":"The identifier of the book connection"},"trigger_id":{"type":"string","title":"The name of the trigger"},"configuration":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/bdkV2Value"},"title":"Configuration parameters for the trigger"},"endpoint":{"type":"string","title":"The endpoint of the trigger instance"},"automation_ids":{"type":"array","items":{"type":"string"},"title":"Automation IDs"},"workspace_id":{"type":"string","title":"Workspace ID"},"organization_id":{"type":"string","title":"Organization ID"},"filter_expression":{"$ref":"#/components/schemas/v2Expression"},"status":{"$ref":"#/components/schemas/v2TriggerInstanceStatus"}}},"bdkV2Value":{"type":"object","properties":{"null_value":{"type":"string"},"conceptual_value":{"$ref":"#/components/schemas/v2NounPhrase"},"text_value":{"type":"string","title":"deprecated: use offloadable_text_value (15) for new code"},"number_value":{"type":"number","format":"double"},"boolean_value":{"type":"boolean"},"datetime_value":{"type":"string","format":"date-time"},"date_value":{"$ref":"#/components/schemas/v2Date"},"time_value":{"$ref":"#/components/schemas/v2Time"},"file_value":{"$ref":"#/components/schemas/v2FileValue"},"dictionary_value":{"$ref":"#/components/schemas/v2DictionaryValue"},"list_value":{"$ref":"#/components/schemas/bdkV2ListValue"},"opaque_value":{"$ref":"#/components/schemas/v2OpaqueValue"},"table_value":{"$ref":"#/components/schemas/v2TableValue"},"sensitive_value":{"$ref":"#/components/schemas/v2SensitiveValue"},"offloadable_text_value":{"$ref":"#/components/schemas/v2OffloadableTextValue"},"offloadable_dictionary_value":{"$ref":"#/components/schemas/v2OffloadableDictionaryValue"},"offloadable_list_value":{"$ref":"#/components/schemas/v2OffloadableListValue"}},"title":"A union of all possible values"},"v2NounPhrase":{"type":"object","properties":{"modifiers":{"type":"array","items":{"type":"string"},"title":"Optional adjectives attached to the noun"},"head":{"type":"string","title":"Noun of the phrase"}}},"v2Date":{"type":"object","properties":{"year":{"type":"integer","format":"int32","title":"Year of the date"},"month":{"type":"integer","format":"int32","title":"Month of a year"},"day":{"type":"integer","format":"int32","title":"Day of a month"}}},"v2Time":{"type":"object","properties":{"hours":{"type":"integer","format":"int32","title":"Hours of day"},"minutes":{"type":"integer","format":"int32","title":"Minutes of hour of day"},"seconds":{"type":"integer","format":"int32","title":"Seconds of minutes of the time"},"nanos":{"type":"integer","format":"int32","title":"Fractions of seconds in nanoseconds"}}},"v2FileValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2File"}},"title":"A file value represents a file that can be either inline or remote"},"v2File":{"type":"object","properties":{"file_name":{"type":"string","title":"The name of the file"},"content":{"type":"string","format":"byte","title":"Content of the file as a byte stream"}}},"v2DictionaryValue":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/v2DictionaryValueField"},"title":"All the fields alongside their values in the dictionary"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the dictionary"}},"title":"Value to be used when the type is dictionary"},"v2DictionaryValueField":{"type":"object","properties":{"key":{"type":"string"},"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"Each key-value pair inside a dictionary"},"bdkV2ListValue":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"},"title":"All the values inside the list"}},"title":"A collection of values"},"v2OpaqueValue":{"type":"object","properties":{"content":{"type":"string","format":"byte","title":"Content of the opaque value"},"is_a":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"},"title":"Is a replationships for the opaque"}}},"v2TableValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2Table"}},"title":"A table that is represented remote as an URL to a file that is Feather-formatted\nor inline via the Table message"},"v2Table":{"type":"object","properties":{"columns":{"type":"array","items":{"$ref":"#/components/schemas/v2Column"}}},"description":"A table is a column-oriented structure. All the values inside each column must\nbe of equal length."},"v2Column":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/bdkV2Value"}},"name":{"type":"string"}}},"v2SensitiveValue":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/bdkV2Value"}},"title":"A sensitive value is any value marked as sensitive (to prevent exposure)"},"v2OffloadableTextValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"type":"string"}},"title":"A text value that can be either inline or stored remotely"},"v2OffloadableDictionaryValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/v2DictionaryValue"}},"title":"A dictionary value that can be either inline or stored remotely"},"v2OffloadableListValue":{"type":"object","properties":{"remote":{"type":"string"},"inline":{"$ref":"#/components/schemas/bdkV2ListValue"}},"title":"A list value that can be either inline or stored remotely"},"v2Expression":{"type":"object","properties":{"binary_expression":{"$ref":"#/components/schemas/v2BinaryExpression"},"unary_expression":{"$ref":"#/components/schemas/v2UnaryExpression"},"value_expression":{"$ref":"#/components/schemas/bdkV2Value"},"noun_phrases_expression":{"$ref":"#/components/schemas/v2NounPhrases"}}},"v2BinaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2BinaryOperator"},"left":{"$ref":"#/components/schemas/v2Expression"},"right":{"$ref":"#/components/schemas/v2Expression"}}},"v2BinaryOperator":{"type":"string","enum":["BinaryOperatorAnd","BinaryOperatorOr","BinaryOperatorEquals","BinaryOperatorNotEquals","BinaryOperatorIn","BinaryOperatorHas","BinaryOperatorLessThan","BinaryOperatorGreaterThan","BinaryOperatorLessThanOrEqual","BinaryOperatorGreaterThanOrEqual"],"default":"BinaryOperatorAnd"},"v2UnaryExpression":{"type":"object","properties":{"operator":{"$ref":"#/components/schemas/v2UnaryOperator"},"inner":{"$ref":"#/components/schemas/v2Expression"}}},"v2UnaryOperator":{"type":"string","enum":["UnaryOperatorNot","UnaryOperatorExists"],"default":"UnaryOperatorNot"},"v2NounPhrases":{"type":"object","properties":{"noun_phrases":{"type":"array","items":{"$ref":"#/components/schemas/v2NounPhrase"}}}},"v2TriggerInstanceStatus":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/v2TriggerInstanceState"},"state_category":{"$ref":"#/components/schemas/v2TriggerInstanceStateCategory"},"reason":{"type":"string","title":"Human-readable message providing additional details about the current state"},"last_updated":{"type":"string","title":"RFC 3339 timestamp of when the status was last updated"}},"title":"Status information for a BookConnection"},"v2TriggerInstanceState":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_PENDING","TRIGGER_INSTANCE_STATE_READY","TRIGGER_INSTANCE_STATE_FAILED","TRIGGER_INSTANCE_STATE_UNKNOWN"],"default":"TRIGGER_INSTANCE_STATE_PENDING","title":"Possible phases for a TriggerInstance (Pending, Ready, Failed, Unknown)"},"v2TriggerInstanceStateCategory":{"type":"string","enum":["TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","TRIGGER_INSTANCE_STATE_CATEGORY_READY","TRIGGER_INSTANCE_STATE_CATEGORY_FAILED"],"default":"TRIGGER_INSTANCE_STATE_CATEGORY_WARNING","title":"The category/level of the connection state"},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/triggers":{"get":{"summary":"View Trigger Instances","operationId":"ListWorkspaceTriggerInstances","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveWorkspaceTriggerInstancesResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"filter","description":"AIP-160 Filter expression\nhttps://google.aip.dev/160","in":"query","required":false,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```

## View Connection User Info

> This endpoint returns information about the user (email, username and other extra attributes) from\
> &#x20;a book that has already been connected.

```json
{"openapi":"3.0.0","info":{"title":"Kognitos API","version":"1.0.0"},"tags":[{"name":"Books","description":"Browse and search books, concepts, procedures, connections, and triggers."}],"servers":[{"url":"https://app.us-1.kognitos.com"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Personal Access Token."}},"schemas":{"v2RetrieveUserInfoResponse":{"type":"object","properties":{"user_info":{"$ref":"#/components/schemas/v2UserInfo"}},"title":"The response to a retrieve user info request"},"v2UserInfo":{"type":"object","properties":{"email":{"type":"string","title":"The email of the user"},"username":{"type":"string","title":"The username of the user"},"other_attributes":{"type":"object","additionalProperties":{"type":"string"},"title":"A map with other extra attributes the user may have"}}},"rpcStatus":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"$ref":"#/components/schemas/protobufAny"}}}},"protobufAny":{"type":"object","properties":{"@type":{"type":"string"}},"additionalProperties":{}}}},"paths":{"/api/v1/organizations/{organization_id}/workspaces/{workspace_id}/connections/{connection_id}/user-info":{"get":{"summary":"View Connection User Info","description":"This endpoint returns information about the user (email, username and other extra attributes) from\n a book that has already been connected.","operationId":"GetWorkspaceBookConnectionUserInfo","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v2RetrieveUserInfoResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/rpcStatus"}}}}},"parameters":[{"name":"organization_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"connection_id","in":"path","required":true,"schema":{"type":"string"}}],"tags":["Books"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kognitos.com/guides/api-reference/books.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
