-- :api: find-file-structure :request: FindFileStructureRequest :response: FindFileStructureResponse -- [id="{upid}-{api}"] === Find File Structure API The Find File Structure API can be used to find the structure of a text file and other information that will be useful to import its contents to an {es} index. It accepts a +{request}+ object and responds with a +{response}+ object. [id="{upid}-{api}-request"] ==== Find File Structure Request A sample from the beginning of the file (or the entire file contents if it's small) must be added to the +{request}+ object using the `FindFileStructureRequest#setSample` method. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-request] -------------------------------------------------- <1> Create a new `FindFileStructureRequest` object <2> Add the contents of `anInterestingFile` to the request ==== Optional Arguments The following arguments are optional. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-request-options] -------------------------------------------------- <1> Set the maximum number of lines to sample (the entire sample will be used if it contains fewer lines) <2> Request that an explanation of the analysis be returned in the response include::../execution.asciidoc[] [id="{upid}-{api}-response"] ==== Find File Structure Response A +{response}+ contains information about the file structure, as well as mappings and an ingest pipeline that could be used to index the contents into {es}. ["source","java",subs="attributes,callouts,macros"] -------------------------------------------------- include-tagged::{doc-tests-file}[{api}-response] -------------------------------------------------- <1> The `FileStructure` object contains the structure information