{"openapi":"3.1.0","info":{"title":"Data API","version":"1.0.0"},"paths":{"/v1/audit/events":{"get":{"operationId":"audit_list_data_audit_events","summary":"List Data Audit Events","description":"Lists data audit events that match query parameters.","tags":["audit"],"parameters":[{"name":"filterOps.context.changeID","in":"query","description":"ID for the audit event. Use this to uniquely identify a specific audit record.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.requestID","in":"query","description":"ID for the request that caused the event. Use to correlate multiple audit events triggered by a single API request.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.sessionID","in":"query","description":"ID for the session in which the request was sent. Present when a session context is available.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.actor","in":"query","description":"Member who sent the request. Depending on `actorType`, this may be a user ID or a service account ID. For users this is their email address.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.actorType","in":"query","description":"Type of member who sent the request.","required":false,"schema":{"$ref":"#/components/schemas/V1AuditEventsGetParametersFilterOpsContextActorType"}},{"name":"filterOps.context.accessType","in":"query","description":"Type of access for the request.","required":false,"schema":{"$ref":"#/components/schemas/V1AuditEventsGetParametersFilterOpsContextAccessType"}},{"name":"filterOps.context.ipAddress","in":"query","description":"IP Address of the client that made the request.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.origin","in":"query","description":"HTTP Origin request header (including scheme, hostname, and port) of the request. Present only for browser-originated requests. Absent for server-to-server API calls.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.authMode","in":"query","description":"Authentication mode the `actor` used. `OKTA_JWT`: Federated identity via Okta SSO. `SERVICE_ACCOUNT_JWT`: Service account JWT (machine-to-machine). `PAT_JWT`: Personal Access Token issued as a JWT. `API_KEY`: Static API key.","required":false,"schema":{"$ref":"#/components/schemas/V1AuditEventsGetParametersFilterOpsContextAuthMode"}},{"name":"filterOps.context.jwtID","in":"query","description":"ID of the JWT token (the `jti` claim). Identifies the specific token used for this request.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.bearerTokenContextID","in":"query","description":"User context embedded in the bearer token. Present when a bearer token encodes additional user context.","required":false,"schema":{"type":"string"}},{"name":"filterOps.context.clientTraceID","in":"query","description":"Correlation ID supplied by the caller, so you can find audit events by the request ID your own systems already use. Opaque to Skyflow: recorded as sent and never interpreted. Distinct from `traceID`, which is Skyflow's own internal trace. Capped at 128 characters.","required":false,"schema":{"type":"string"}},{"name":"filterOps.parentAccountID","in":"query","description":"Resources with the specified parent account ID.","required":false,"schema":{"type":"string"}},{"name":"filterOps.accountID","in":"query","required":true,"schema":{"type":"string"}},{"name":"filterOps.workspaceID","in":"query","description":"Resources with the specified workspace ID.","required":false,"schema":{"type":"string"}},{"name":"filterOps.vaultID","in":"query","description":"Resources with the specified vault ID.","required":false,"schema":{"type":"string"}},{"name":"filterOps.resourceIDs","in":"query","description":"Resources with a specified ID. If a resource matches at least one ID, the associated event is returned. Format is a comma-separated list of \"\\<resourceType\\>/\\<resourceID\\>\". For example, \"VAULT/12345, USER/67890\".","required":false,"schema":{"type":"string"}},{"name":"filterOps.request.clientInfo.userEmail","in":"query","description":"Email of the end user on whose behalf the caller made the request, from the `ctx.email` claim of the bearer token.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}":{"post":{"operationId":"records_batch_operation","summary":"Batch Operation","description":"Performs multiple record operations in a single transaction.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchOperationResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchOperationRequest"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/{objectName}":{"get":{"operationId":"records_get_records","summary":"Get Records","description":"Returns the specified records from a table.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"skyflow_ids","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"redaction","in":"query","required":false,"schema":{"$ref":"#/components/schemas/V1VaultsVaultIdObjectNameGetParametersRedaction"}},{"name":"tokenization","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"fields","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"offset","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string"}},{"name":"downloadURL","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"column_name","in":"query","required":false,"schema":{"type":"string"}},{"name":"column_values","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"order_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/V1VaultsVaultIdObjectNameGetParametersOrderBy"}},{"name":"returnFileMetadata","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkGetRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"security":[{"Bearer":[]}]},"post":{"operationId":"records_insert_records","summary":"Insert Records","description":"Inserts a record in the specified table.<br /><br />The time-to-live (TTL) for a transient field begins when the field value is set during record insertion.<br /><br />Columns that have a string data type and a uniqueness constraint accept strings up to 2500 characters. If an inserted string exceeds 2500 characters, the call returns a token insertion error.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsertRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InsertRecordRequest"}}}},"security":[{"Bearer":[]}]},"delete":{"operationId":"records_delete_records","summary":"Delete Records","description":"Deletes the specified records from a table.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","description":"Name of the table.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteRecordRequest"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/{objectName}/{ID}":{"get":{"operationId":"records_get_record_by_id","summary":"Get Record By ID","description":"Returns the specified record from a table.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"redaction","in":"query","required":false,"schema":{"$ref":"#/components/schemas/V1VaultsVaultIdObjectNameIdGetParametersRedaction"}},{"name":"tokenization","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"fields","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"downloadURL","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"returnFileMetadata","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFieldRecords"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"security":[{"Bearer":[]}]},"put":{"operationId":"records_update_record","summary":"Update Record","description":"Updates the specified record in a table.<br /><br />When you update a field, include the entire contents you want the field to store. For JSON fields, include all nested fields and values. If a nested field isn't included, it's removed.<br /><br />The time-to-live (TTL) for a transient field resets when the field value is updated.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecordRequest"}}}},"security":[{"Bearer":[]}]},"delete":{"operationId":"records_delete_record","summary":"Delete Record","description":"Deletes the specified record from a table.<br /><br /><b>Note:</b> This method doesn't delete transient field tokens. Transient field values are available until they expire based on the fields' time-to-live (TTL) setting.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","description":"Name of the table.","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","description":"`skyflow_id` of the record to delete.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"security":[{"Bearer":[]}]}},"/v2/vaults/{vaultID}/records/get_by_tokens":{"post":{"operationId":"records_get_record_by_token","summary":"Get Record By Token","description":"Returns the record that corresponds to the specified token.","tags":["records"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecordsByTokenResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRecordsByTokenRequest"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/detokenize":{"post":{"operationId":"tokens_detokenize","summary":"Detokenize","description":"Returns records that correspond to the specified tokens.","tags":["tokens"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetokenizeResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetokenizePayload"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/tokenize":{"post":{"operationId":"tokens_tokenize","summary":"Tokenize","description":"Returns tokens that correspond to the specified records. Only applicable for fields with deterministic tokenization.<br /><br /><b>Note:</b> This endpoint doesn't insert records—it returns tokens for existing values. To insert records and return tokens for that new record's values, see Insert Records' `tokenization` parameter.","tags":["tokens"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenizeResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenizePayload"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/query":{"post":{"operationId":"query_execute_query","summary":"Execute Query","description":"Returns records for a valid SQL query. This endpoint <ul><li>Can return redacted record values.</li><li>Supports only the <code>SELECT</code> command.</li><li>Returns a maximum of 25 records. To return additional records, perform another query using the <code>OFFSET</code> keyword.</li><li>Can't modify the vault or perform transactions.</li><li>Can't return tokens.</li><li>Can't return file download or render URLs.</li><li>Doesn't support the <code>WHERE</code> keyword with columns using transient tokenization.</li><li>Doesn't support `?` conditional for columns with column-level encryption disabled.</li><ul>","tags":["query"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetQueryResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetQueryRequest"}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/{objectName}/{ID}/files":{"post":{"operationId":"files_upload_file","summary":"Upload File","description":"Uploads a file to the specified record.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","description":"ID of the vault.","required":true,"schema":{"type":"string"}},{"name":"objectName","in":"path","description":"Name of the table.","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","description":"`skyflow_id` of the record.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRecordResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"deprecated":true,"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"fileColumnName":{"type":"string","format":"binary","description":"The key for `fileColumnName` is the name of the column to store the file in, which must have a `file` data type. The value is the file to upload."}}}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/{tableName}/{ID}/files/{columnName}":{"delete":{"operationId":"files_delete_file","summary":"Delete File","description":"Deletes a file from a specified record.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"tableName","in":"path","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"columnName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteFileResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"security":[{"Bearer":[]}]}},"/v1/vaults/{vaultID}/{tableName}/{ID}/files/{columnName}/scan-status":{"get":{"operationId":"files_get_file_scan_status","summary":"Get File Scan Status","description":"Returns the anti-virus scan status of a file.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}},{"name":"tableName","in":"path","required":true,"schema":{"type":"string"}},{"name":"ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"columnName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFileScanStatusResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"deprecated":true,"security":[{"Bearer":[]}]}},"/v2/vaults/{vaultID}/files/upload":{"post":{"operationId":"files_upload_file_v2","summary":"Upload File","description":"Uploads a file to a new or specified record.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadFileResponseV2"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"422":{"description":"Returned when the request is well-formed but contains semantic errors that prevent it from being processed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"tableName":{"type":"string","description":"Name of the table."},"columnName":{"type":"string","description":"Name of the column that contains the file."},"skyflowID":{"type":"string","description":"ID of the record to update."},"file":{"type":"string","description":"Path of the file to upload. Each request only supports one file."},"returnFileMetadata":{"type":"boolean","default":false,"description":"If `true`, returns metadata about the uploaded file."}},"required":["tableName","columnName","file"]}}}},"security":[{"Bearer":[]}]}},"/v2/vaults/{vaultID}/files/uploadStatus":{"post":{"operationId":"files_get_files_upload_status","summary":"Get Files Upload Status","description":"Returns the upload and scan status for the specified file columns across multiple records.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFileUploadStatusResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFileUploadStatusRequest"}}}},"security":[{"Bearer":[]}]}},"/v2/vaults/{vaultID}/files/uploadURL":{"post":{"operationId":"files_get_file_upload_urls","summary":"Get File Upload URL","description":"Returns the file upload URLs for provided file columns.","tags":["files"],"parameters":[{"name":"vaultID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFileUploadUrlsResponse"}}}},"400":{"description":"Returned when the request is invalid or cannot be served.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"401":{"description":"Returned when the request is unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"404":{"description":"Returned when a resource doesn't exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}},"500":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error_response"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFileUploadUrlsRequest"}}}},"security":[{"Bearer":[]}]}}},"tags":[{"name":"audit"},{"name":"records"},{"name":"tokens"},{"name":"query"},{"name":"files"}],"servers":[{"url":"https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis.com","description":"Production"},{"url":"https://%7B%7Bvault_uri%7D%7D.vault.skyflowapis-preview.com","description":"Sandbox"}],"components":{"schemas":{"V1AuditEventsGetParametersFilterOpsContextActorType":{"type":"string","enum":["NONE","USER","GROUP","SERVICE_ACCOUNT","SQL_SERVICE_ACCOUNT"],"title":"V1AuditEventsGetParametersFilterOpsContextActorType"},"V1AuditEventsGetParametersFilterOpsContextAccessType":{"type":"string","enum":["ACCESS_NONE","API","SQL","OKTA_LOGIN"],"title":"V1AuditEventsGetParametersFilterOpsContextAccessType"},"V1AuditEventsGetParametersFilterOpsContextAuthMode":{"type":"string","enum":["AUTH_NONE","OKTA_JWT","SERVICE_ACCOUNT_JWT","PAT_JWT","API_KEY","STS"],"title":"V1AuditEventsGetParametersFilterOpsContextAuthMode"},"AuditEventContextActorType":{"type":"string","enum":["USER","SERVICE_ACCOUNT"],"description":"Type of member who sent the request.","title":"AuditEventContextActorType"},"AuditEventContextAccessType":{"type":"string","enum":["API","SQL"],"description":"Type of access for the request.","title":"AuditEventContextAccessType"},"AuditEventContextAuthMode":{"type":"string","enum":["OKTA_JWT","SERVICE_ACCOUNT_JWT","PAT_JWT","API_KEY","STS"],"description":"Authentication mode the `actor` used. `OKTA_JWT`: Federated identity via Okta SSO. `SERVICE_ACCOUNT_JWT`: Service account JWT (machine-to-machine). `PAT_JWT`: Personal Access Token issued as a JWT. `API_KEY`: Static API key.","title":"AuditEventContextAuthMode"},"AuditEvent_Context":{"type":"object","properties":{"changeID":{"type":"string","description":"ID for the audit event. Use this to uniquely identify a specific audit record."},"requestID":{"type":"string","description":"ID for the request that caused the event. Use to correlate multiple audit events triggered by a single API request."},"traceID":{"type":"string","description":"ID for the request set by the service that received the request. Use with your distributed tracing tool to follow a request across Skyflow services."},"sessionID":{"type":"string","description":"ID for the session in which the request was sent. Present when a session context is available.","deprecated":true},"actor":{"type":"string","description":"Member who sent the request. Depending on `actorType`, this may be a user ID or a service account ID. For users this is their email address."},"actorType":{"$ref":"#/components/schemas/AuditEventContextActorType","description":"Type of member who sent the request."},"accessType":{"$ref":"#/components/schemas/AuditEventContextAccessType","description":"Type of access for the request."},"ipAddress":{"type":"string","description":"IP Address of the client that made the request."},"origin":{"type":"string","description":"HTTP Origin request header (including scheme, hostname, and port) of the request. Present only for browser-originated requests. Absent for server-to-server API calls."},"authMode":{"$ref":"#/components/schemas/AuditEventContextAuthMode","description":"Authentication mode the `actor` used. `OKTA_JWT`: Federated identity via Okta SSO. `SERVICE_ACCOUNT_JWT`: Service account JWT (machine-to-machine). `PAT_JWT`: Personal Access Token issued as a JWT. `API_KEY`: Static API key."},"jwtID":{"type":"string","description":"ID of the JWT token (the `jti` claim). Identifies the specific token used for this request."},"bearerTokenContextID":{"type":"string","description":"User context embedded in the bearer token. Present when a bearer token encodes additional user context."},"keyID":{"type":"string","description":"Key ID of the API key used to make the request. Present when `authMode` is `SERVICE_ACCOUNT_JWT` or `API_KEY`. Absent for `PAT_JWT` and `OKTA_JWT`."},"subject":{"type":"string","description":"This represents the user on whose behalf the request is made. It may differ from the actor (act) when delegation is involved."},"clientTraceID":{"type":"string","description":"Correlation ID supplied by the caller, so you can find audit events by the request ID your own systems already use. Opaque to Skyflow: recorded as sent and never interpreted. Distinct from `traceID`."}},"required":["changeID","requestID","traceID","actor","actorType","accessType","ipAddress","authMode","jwtID"],"description":"Context for an audit event.","title":"AuditEvent_Context"},"Data_IdentifiedFields":{"type":"object","properties":{"counts":{"type":"integer","description":"How many values the operation resolved. Counts values, not columns: two card numbers in one body is a count of 2 against a single `fields` entry."},"fields":{"type":"array","items":{"type":"string"},"description":"Distinct vault columns the resolved values came from (e.g. `creditCard`, `cvv`). Vault schema column names, not the field names used in the caller's payload."}},"description":"Vault columns whose values the operation resolved.","title":"Data_IdentifiedFields"},"AuditEvent_Data":{"type":"object","properties":{"content":{"type":"string","description":"The entire body of the request or response."},"identifiedFields":{"$ref":"#/components/schemas/Data_IdentifiedFields","description":"Vault columns whose values the operation resolved. Present on HTTP Forward Proxy `TUNNEL_REQUEST` events."}},"description":"Data (if any).","title":"AuditEvent_Data"},"AuditEvent_NestedResponse":{"type":"object","properties":{"code":{"type":"integer","description":"Status code for the operation."},"message":{"type":"string","description":"Status message for the operation. Describes the failure reason for errored items. Empty string on success."},"identifier":{"type":"string","description":"ID for the resource that was modified, in `{resourceType}/{resourceID}` format. For example, `VAULT/cd1d815aa09b4cbfbb803bd20349f202`. May be empty if the item identifier couldn't be resolved."},"data":{"$ref":"#/components/schemas/AuditEvent_Data","description":"Data (if any) for the response."}},"required":["code","message","identifier"],"title":"AuditEvent_NestedResponse"},"AuditEvent_Response":{"type":"object","properties":{"code":{"type":"integer","description":"Status code for the overall operation. For batch operations, a 200 doesn't mean every item succeeded. Check `nestedResponse` for per-operation outcomes."},"message":{"type":"string","description":"Status message for the overall operation."},"data":{"$ref":"#/components/schemas/AuditEvent_Data","description":"Data (if any) for the response."},"timestamp":{"type":"string","description":"Time when the response was created. RFC 3339 format with nanosecond precision."},"nestedResponse":{"type":"array","items":{"$ref":"#/components/schemas/AuditEvent_NestedResponse"},"description":"Details for nested operations, if any. An array of per-item results returned for batch operations. Absent for non-batch operations."}},"required":["code","message","timestamp"],"description":"Response properties of the event.","title":"AuditEvent_Response"},"AuditResponseEvent":{"type":"object","properties":{"context":{"$ref":"#/components/schemas/AuditEvent_Context"},"response":{"$ref":"#/components/schemas/AuditEvent_Response"}},"description":"Audit event details.","title":"AuditResponseEvent"},"AuditAfterOptions":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp provided in the previous audit response's `nextOps` attribute. An alternate way to manage response pagination. Can't be used with `sortOps` or `offset`. For the first request in a series of audit requests, leave blank."},"changeID":{"type":"string","description":"Change ID provided in the previous audit response's `nextOps` attribute. An alternate way to manage response pagination. Can't be used with `sortOps` or `offset`. For the first request in a series of audit requests, leave blank."}},"title":"AuditAfterOptions"},"AuditResponse":{"type":"object","properties":{"event":{"type":"array","items":{"$ref":"#/components/schemas/AuditResponseEvent"},"description":"Events matching the query."},"nextOps":{"$ref":"#/components/schemas/AuditAfterOptions"}},"title":"AuditResponse"},"http_code":{"type":"integer","minimum":100,"maximum":599,"description":"HTTP status codes. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status.","title":"http_code"},"ErrorResponseError":{"type":"object","properties":{"grpc_code":{"type":"integer","minimum":0,"maximum":16,"description":"gRPC status codes. See https://grpc.io/docs/guides/status-codes."},"http_code":{"$ref":"#/components/schemas/http_code"},"http_status":{"type":"string","maxLength":100},"message":{"type":"string","maxLength":1000},"details":{"type":"array","items":{"type":"object","additionalProperties":{"description":"Any type"}}}},"required":["grpc_code","http_code","http_status","message"],"title":"ErrorResponseError"},"error_response":{"type":"object","properties":{"error":{"$ref":"#/components/schemas/ErrorResponseError"}},"required":["error"],"title":"error_response"},"BatchRecordMethod":{"type":"string","enum":["POST","PUT","GET","DELETE"],"description":"Method of the operation.","title":"BatchRecordMethod"},"BatchRecordRedaction":{"type":"string","enum":["DEFAULT","REDACTED","MASKED","PLAIN_TEXT"],"default":"DEFAULT","description":"Redaction level to enforce for the returned record. Subject to policies assigned to the API caller.","title":"BatchRecordRedaction"},"BatchRecord":{"type":"object","properties":{"fields":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Field and value key pairs. For example, `{'field_1':'value_1', 'field_2':'value_2'}`. Only valid when `method` is `POST` or `PUT`."},"tableName":{"type":"string","description":"Name of the table to perform the operation on."},"method":{"$ref":"#/components/schemas/BatchRecordMethod","description":"Method of the operation."},"batchID":{"type":"string","description":"ID to group operations by. Operations in the same group are executed sequentially."},"redaction":{"$ref":"#/components/schemas/BatchRecordRedaction","default":"DEFAULT","description":"Redaction level to enforce for the returned record. Subject to policies assigned to the API caller."},"tokenization":{"type":"boolean","default":false,"description":"If `true`, this operation returns tokens for fields with tokenization enabled. Only applicable if `skyflow_id` values are specified."},"ID":{"type":"string","description":"`skyflow_id` for the record. Only valid when `method` is `GET`, `DELETE`, or `PUT`."},"downloadURL":{"type":"boolean","default":false,"description":"If `true`, returns download URLs for fields with a file data type. URLs are valid for 15 minutes. If virus scanning is enabled, only returns if the file is clean."},"upsert":{"type":"string","description":"Column that stores primary keys for upsert operations. The column must be marked as unique in the vault schema. Only valid when `method` is `POST`."},"tokens":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Fields and tokens for the record. For example, `{'field_1':'token_1', 'field_2':'token_2'}`."},"returnFileMetadata":{"type":"boolean","default":false,"description":"If `true`, returns metadata for files."}},"required":["fields","tableName","method"],"title":"BatchRecord"},"BatchOperationRequest":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/BatchRecord"},"description":"Record operations to perform."},"continueOnError":{"type":"boolean","default":false,"description":"If `true`, continues processing remaining operations when one operation returns an error. If `false`, stops processing remaining operations when one operation returns an error."}},"required":["records"],"title":"BatchOperationRequest"},"BatchOperationResponseResponsesItems":{"type":"object","properties":{},"title":"BatchOperationResponseResponsesItems"},"BatchOperationResponse":{"type":"object","properties":{"vaultID":{"type":"string","description":"ID of the vault."},"responses":{"type":"array","items":{"$ref":"#/components/schemas/BatchOperationResponseResponsesItems"},"description":"Responses in the same order as in the request. Responses have the same payload structure as their corresponding APIs: <br/><ul><li>`POST` returns an Insert Records response.</li><li>`PUT` returns an Update Record response.</li><li>`GET` returns a Get Record response.</li><li>`DELETE` returns a Delete Record response.</li></ul>"}},"title":"BatchOperationResponse"},"V1VaultsVaultIdObjectNameGetParametersRedaction":{"type":"string","enum":["DEFAULT","REDACTED","MASKED","PLAIN_TEXT"],"title":"V1VaultsVaultIdObjectNameGetParametersRedaction"},"V1VaultsVaultIdObjectNameGetParametersOrderBy":{"type":"string","enum":["ASCENDING","DESCENDING","NONE"],"title":"V1VaultsVaultIdObjectNameGetParametersOrderBy"},"FileMetadata":{"type":"object","properties":{"fileName":{"type":"string","description":"Name of the file, including the extension if provided."},"fileSizeKB":{"type":"integer","format":"uint","description":"Size of the file in kilobytes (KB), rounded up from bytes to the nearest KB."},"fileType":{"type":"string","description":"Type of the file, detected based on its content (MIME type)."}},"description":"Metadata about the file, including its name, size, and type.","title":"FileMetadata"},"GetFieldRecords":{"type":"object","properties":{"fields":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Fields and values for the record. For example, `{'field_1':'value_1', 'field_2':'value_2'}`."},"tokens":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Fields and tokens for the record. For example, `{'field_1':'token_1', 'field_2':'token_2'}`."},"fileMetadata":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FileMetadata"},"description":"Metadata for the uploaded file, keyed by dynamic column name."}},"description":"Record values and tokens for Get and BulkGet.","title":"GetFieldRecords"},"BulkGetRecordResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/GetFieldRecords"},"description":"The specified records."}},"title":"BulkGetRecordResponse"},"FieldRecords":{"type":"object","properties":{"fields":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Fields and values for the record. For example, `{'field_1':'value_1', 'field_2':'value_2'}`."},"tokens":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Fields and tokens for the record. For example, `{'field_1':'token_1', 'field_2':'token_2'}`."}},"description":"Record values and tokens.","title":"FieldRecords"},"InsertRecordRequestByot":{"type":"string","enum":["DISABLE","ENABLE","ENABLE_STRICT"],"default":"DISABLE","description":"Token insertion behavior.","title":"InsertRecordRequestByot"},"InsertRecordRequest":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/FieldRecords"},"description":"Record values and tokens."},"tokenization":{"type":"boolean","default":false,"description":"If `true`, this operation returns tokens for fields with tokenization enabled."},"upsert":{"type":"string","description":"Name of a unique column in the table. Uses upsert operations to check if a record exists based on the unique column's value. If a matching record exists, the record updates with the values you provide. If a matching record doesn't exist, the upsert operation inserts a new record.<br /><br />When you upsert a field, include the entire contents you want the field to store. For JSON fields, include all nested fields and values. If a nested field isn't included, it's removed."},"homogeneous":{"type":"boolean","default":false,"description":"If `true`, this operation mandates that all the records have the same fields. This parameter does not work with upsert."},"byot":{"$ref":"#/components/schemas/InsertRecordRequestByot","default":"DISABLE","description":"Token insertion behavior."}},"required":["records"],"title":"InsertRecordRequest"},"RecordMetaPropertiesTokens":{"type":"object","properties":{},"description":"Tokens for the record.","title":"RecordMetaPropertiesTokens"},"RecordMetaProperties":{"type":"object","properties":{"skyflow_id":{"type":"string","description":"ID of the inserted record."},"tokens":{"$ref":"#/components/schemas/RecordMetaPropertiesTokens","description":"Tokens for the record."}},"title":"RecordMetaProperties"},"InsertRecordResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/RecordMetaProperties"},"description":"Inserted records."}},"title":"InsertRecordResponse"},"BulkDeleteRecordRequest":{"type":"object","properties":{"skyflow_ids":{"type":"array","items":{"type":"string"},"description":"`skyflow_id` values of the records to delete. If `*` is specified, this operation deletes all records in the table."}},"title":"BulkDeleteRecordRequest"},"BulkDeleteRecordResponse":{"type":"object","properties":{"RecordIDResponse":{"type":"array","items":{"type":"string"},"description":"IDs for the deleted records, or `*` if all records were deleted."}},"title":"BulkDeleteRecordResponse"},"V1VaultsVaultIdObjectNameIdGetParametersRedaction":{"type":"string","enum":["DEFAULT","REDACTED","MASKED","PLAIN_TEXT"],"title":"V1VaultsVaultIdObjectNameIdGetParametersRedaction"},"UpdateRecordRequestByot":{"type":"string","enum":["DISABLE","ENABLE","ENABLE_STRICT"],"default":"DISABLE","description":"Token insertion behavior.","title":"UpdateRecordRequestByot"},"UpdateRecordRequest":{"type":"object","properties":{"record":{"$ref":"#/components/schemas/FieldRecords"},"tokenization":{"type":"boolean","default":false,"description":"If `true`, this operation returns tokens for fields with tokenization enabled."},"byot":{"$ref":"#/components/schemas/UpdateRecordRequestByot","default":"DISABLE","description":"Token insertion behavior."}},"title":"UpdateRecordRequest"},"UpdateRecordResponse":{"type":"object","properties":{"skyflow_id":{"type":"string","description":"ID of the updated record."},"tokens":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Tokens for the record."}},"title":"UpdateRecordResponse"},"DeleteRecordResponse":{"type":"object","properties":{"skyflow_id":{"type":"string","description":"ID of the deleted record."},"deleted":{"type":"boolean","description":"If `true`, the record was deleted."}},"title":"DeleteRecordResponse"},"GetRecordsByTokenRequestRedaction":{"type":"string","enum":["redacted","masked","plain_text"],"description":"Redaction level to enforce on the record (subject to Policies assigned to the caller of this API).","title":"GetRecordsByTokenRequestRedaction"},"GetRecordsByTokenRequest":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string"},"description":"List of tokens of the records to be fetched"},"redaction":{"$ref":"#/components/schemas/GetRecordsByTokenRequestRedaction","default":"invalid","description":"Redaction level to enforce on the record (subject to Policies assigned to the caller of this API)."}},"required":["tokens"],"title":"GetRecordsByTokenRequest"},"GetRecordsByTokenRecordFields":{"type":"object","properties":{},"description":"Record corresponding to the token.","title":"GetRecordsByTokenRecordFields"},"GetRecordsByTokenRecord":{"type":"object","properties":{"fields":{"$ref":"#/components/schemas/GetRecordsByTokenRecordFields","description":"Record corresponding to the token."},"error":{"type":"string","description":"Error if token isn't found."},"http_code":{"type":"integer","description":"HTTP code of the response."},"token":{"type":"string","description":"Token of the returned record."},"table_name":{"type":"string","description":"Name of the table that the record belongs to."}},"title":"GetRecordsByTokenRecord"},"GetRecordsByTokenResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/GetRecordsByTokenRecord"},"description":"List of records corresponding to the list of tokens."}},"title":"GetRecordsByTokenResponse"},"DetokenizeRecordRequestRedaction":{"type":"string","enum":["DEFAULT","REDACTED","MASKED","PLAIN_TEXT"],"default":"DEFAULT","description":"Redaction level to enforce for the returned record. Subject to policies assigned to the API caller.","title":"DetokenizeRecordRequestRedaction"},"DetokenizeRecordRequest":{"type":"object","properties":{"token":{"type":"string","description":"Token that identifies the record to detokenize."},"redaction":{"$ref":"#/components/schemas/DetokenizeRecordRequestRedaction","default":"DEFAULT","description":"Redaction level to enforce for the returned record. Subject to policies assigned to the API caller."}},"required":["token"],"title":"DetokenizeRecordRequest"},"DetokenizePayload":{"type":"object","properties":{"detokenizationParameters":{"type":"array","items":{"$ref":"#/components/schemas/DetokenizeRecordRequest"},"description":"Detokenization details."},"downloadURL":{"type":"boolean","default":false,"description":"If `true`, returns download URLs for fields with a file data type. URLs are valid for 15 minutes. If virus scanning is enabled, only returns if the file is clean."},"continueOnError":{"type":"boolean","default":false,"description":"If `true`, the detokenization request continues even if an error occurs."}},"required":["detokenizationParameters"],"title":"DetokenizePayload"},"DetokenizeRecordResponseValueType":{"type":"string","enum":["STRING","INTEGER","FLOAT","BOOL","DATETIME","JSON","ARRAY","DATE","TIME"],"description":"Data type of the `value`.","title":"DetokenizeRecordResponseValueType"},"DetokenizeRecordResponse":{"type":"object","properties":{"token":{"type":"string","description":"Token of the record."},"valueType":{"$ref":"#/components/schemas/DetokenizeRecordResponseValueType","description":"Data type of the `value`."},"value":{"type":"string","description":"Data corresponding to the token."},"error":{"type":"string","description":"Error if token isn't found."}},"title":"DetokenizeRecordResponse"},"DetokenizeResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/DetokenizeRecordResponse"},"description":"Records corresponding to the specified tokens."}},"title":"DetokenizeResponse"},"TokenizeRecordRequest":{"type":"object","properties":{"value":{"type":"string","description":"Existing value to return a token for. Must be specified with either `columnGroup` or both `table` and `column`."},"table":{"type":"string","description":"Name of the table that the value belongs to. Must be specified with `column`. Can't be specified with `columnGroup`."},"column":{"type":"string","description":"Name of the column that the value belongs to. Must be specified with `table`. Can't be specified with `columnGroup`."},"columnGroup":{"type":"string","description":"Name of the column group that the value belongs to. Can't be specified with `table` or `column`."}},"title":"TokenizeRecordRequest"},"TokenizePayload":{"type":"object","properties":{"tokenizationParameters":{"type":"array","items":{"$ref":"#/components/schemas/TokenizeRecordRequest"},"description":"Tokenization details."}},"required":["tokenizationParameters"],"title":"TokenizePayload"},"TokenizeRecordResponse":{"type":"object","properties":{"token":{"type":"string","description":"Token corresponding to a value."}},"required":["token"],"title":"TokenizeRecordResponse"},"TokenizeResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/TokenizeRecordResponse"},"description":"Tokens corresponding to the specified values."}},"required":["records"],"title":"TokenizeResponse"},"GetQueryRequest":{"type":"object","properties":{"query":{"type":"string","description":"The SQL query to execute.<br><br><b>Supported commands:</b> <ul> <li><code>SELECT</code></li> </ul> <b>Supported operators:</b> <ul> <li><code>&gt;</code></li> <li><code>&lt;</code></li> <li><code>=</code></li> <li><code>AND</code></li> <li><code>OR</code></li> <li><code>NOT</code></li> <li><code>LIKE</code></li> <li><code>ILIKE</code></li> <li><code>NULL</code></li> <li><code>NOT NULL</code></li> </ul> <b>Supported keywords:</b> <ul> <li><code>FROM</code></li> <li><code>JOIN</code></li> <li><code>INNER JOIN</code></li> <li><code>LEFT OUTER JOIN</code></li> <li><code>LEFT JOIN</code></li> <li><code>RIGHT OUTER JOIN</code></li> <li><code>RIGHT JOIN</code></li> <li><code>FULL OUTER JOIN</code></li> <li><code>FULL JOIN</code></li> <li><code>OFFSET</code></li> <li><code>LIMIT</code></li> <li><code>WHERE</code></li> </ul> <b>Supported functions:</b> <ul> <li><code>AVG()</code></li> <li><code>SUM()</code></li> <li><code>COUNT()</code></li> <li><code>MIN()</code></li> <li><code>MAX()</code></li> <li><code>REDACTION()</code></li> </ul>"}},"required":["query"],"title":"GetQueryRequest"},"GetQueryResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/FieldRecords"},"description":"Records returned by the query."}},"title":"GetQueryResponse"},"DeleteFileResponse":{"type":"object","properties":{"skyflow_id":{"type":"string","description":"ID of the record."},"deleted":{"type":"boolean","description":"If `true`, the file was deleted."}},"title":"DeleteFileResponse"},"GetFileScanStatusResponseAvScanStatus":{"type":"string","enum":["SCAN_CLEAN","SCAN_INFECTED","SCAN_DELETED","SCAN_ERROR","SCAN_PENDING","SCAN_UNSCANNABLE","SCAN_FILE_NOT_FOUND","SCAN_INVALID"],"description":"Anti-virus scan status of the file.","title":"GetFileScanStatusResponseAvScanStatus"},"GetFileScanStatusResponse":{"type":"object","properties":{"file_status":{"type":"string","format":"enum","description":"Status of the file."},"av_scan_status":{"$ref":"#/components/schemas/GetFileScanStatusResponseAvScanStatus","description":"Anti-virus scan status of the file."}},"title":"GetFileScanStatusResponse"},"UploadFileResponseV2":{"type":"object","properties":{"skyflowID":{"type":"string","description":"ID of the record to update."},"fileMetadata":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/FileMetadata"},"description":"Metadata for the uploaded file with keys based on the name of the column containing the file."}},"title":"UploadFileResponseV2"},"FileUploadStatusRecord":{"type":"object","properties":{"tableName":{"type":"string","description":"Name of the table to perform the operation on."},"skyflowID":{"type":"string","description":"`skyflow_id` of the record."},"fileColumns":{"type":"array","items":{"type":"string"},"description":"Array of column names for the file upload status."}},"required":["tableName","skyflowID","fileColumns"],"title":"FileUploadStatusRecord"},"GetFileUploadStatusRequest":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/FileUploadStatusRecord"},"description":"Array of record objects corresponding to the specified files."}},"required":["records"],"title":"GetFileUploadStatusRequest"},"FileUploadStatusResponseRecordFields":{"type":"object","properties":{},"description":"Fields containing skyflow_id and per-column file scan status.","title":"FileUploadStatusResponseRecordFields"},"FileUploadStatusResponseRecord":{"type":"object","properties":{"fields":{"$ref":"#/components/schemas/FileUploadStatusResponseRecordFields","description":"Fields containing skyflow_id and per-column file scan status."},"tableName":{"type":"string","description":"Name of the table."},"error":{"type":"string","description":"Error if unable to fetch file upload status."},"http_code":{"type":"integer","description":"HTTP code of the response."}},"title":"FileUploadStatusResponseRecord"},"GetFileUploadStatusResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/FileUploadStatusResponseRecord"},"description":"Array of record objects with file scan status for the specified files."}},"title":"GetFileUploadStatusResponse"},"FileColumnRecord":{"type":"object","properties":{"columnName":{"type":"string","description":"Name of the column where file is being uploaded to."},"fileName":{"type":"string","description":"Name of the file being uploaded."}},"required":["columnName","fileName"],"title":"FileColumnRecord"},"GenerateFileUploadUrlsRecord":{"type":"object","properties":{"tableName":{"type":"string","description":"Name of the table where file is being uploaded."},"skyflowID":{"type":"string","description":"Skyflow ID of the record where file to be uploaded."},"fileColumns":{"type":"array","items":{"$ref":"#/components/schemas/FileColumnRecord"},"description":"List of FileColumnRecord objects."}},"required":["tableName","fileColumns"],"title":"GenerateFileUploadUrlsRecord"},"GenerateFileUploadUrlsRequest":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/GenerateFileUploadUrlsRecord"},"description":"List of records where the files to be uploaded."}},"required":["records"],"title":"GenerateFileUploadUrlsRequest"},"GenerateFileUploadUrlsResponseRecordFields":{"type":"object","properties":{},"description":"Fields and signedURLs for the record.","title":"GenerateFileUploadUrlsResponseRecordFields"},"GenerateFileUploadUrlsResponseRecord":{"type":"object","properties":{"fields":{"$ref":"#/components/schemas/GenerateFileUploadUrlsResponseRecordFields","description":"Fields and signedURLs for the record."},"error":{"type":"string","description":"Error if unable to fetch URLs."},"http_code":{"type":"integer","description":"HTTP code of the response."}},"title":"GenerateFileUploadUrlsResponseRecord"},"GenerateFileUploadUrlsResponse":{"type":"object","properties":{"records":{"type":"array","items":{"$ref":"#/components/schemas/GenerateFileUploadUrlsResponseRecord"},"description":"List of records corresponding to the list of given fileColumns."}},"title":"GenerateFileUploadUrlsResponse"}},"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer","description":"Access token, prefixed by `Bearer `."}}}}