`<http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-file-structure.html>`_

        :arg body: The contents of the file to be analyzed
        :arg charset: Optional parameter to specify the character set of the
            file
        :arg column_names: Optional parameter containing a comma separated list
            of the column names for a delimited file
        :arg delimiter: Optional parameter to specify the delimiter character
            for a delimited file - must be a single character
        :arg explain: Whether to include a commentary on how the structure was
            derived, default False
        :arg format: Optional parameter to specify the high level file format,
            valid choices are: 'ndjson', 'xml', 'delimited',
            'semi_structured_text'
        :arg grok_pattern: Optional parameter to specify the Grok pattern that
            should be used to extract fields from messages in a semi-structured
            text file
        :arg has_header_row: Optional parameter to specify whether a delimited
            file includes the column names in its first row
        :arg lines_to_sample: How many lines of the file should be included in
            the analysis, default 1000
        :arg quote: Optional parameter to specify the quote character for a
            delimited file - must be a single character
        :arg should_trim_fields: Optional parameter to specify whether the
            values between delimiters in a delimited file should have whitespace
            trimmed from them
        :arg timeout: Timeout after which the analysis will be aborted, default
            '25s'
        :arg timestamp_field: Optional parameter to specify the timestamp field
            in the file
        :arg timestamp_format: Optional parameter to specify the timestamp
            format in the file - may be either a Joda or Java time format

def find_file_structure(self, body, params=None):
        """
        `<http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-file-structure.html>`_

        :arg body: The contents of the file to be analyzed
        :arg charset: Optional parameter to specify the character set of the
            file
        :arg column_names: Optional parameter containing a comma separated list
            of the column names for a delimited file
        :arg delimiter: Optional parameter to specify the delimiter character
            for a delimited file - must be a single character
        :arg explain: Whether to include a commentary on how the structure was
            derived, default False
        :arg format: Optional parameter to specify the high level file format,
            valid choices are: 'ndjson', 'xml', 'delimited',
            'semi_structured_text'
        :arg grok_pattern: Optional parameter to specify the Grok pattern that
            should be used to extract fields from messages in a semi-structured
            text file
        :arg has_header_row: Optional parameter to specify whether a delimited
            file includes the column names in its first row
        :arg lines_to_sample: How many lines of the file should be included in
            the analysis, default 1000
        :arg quote: Optional parameter to specify the quote character for a
            delimited file - must be a single character
        :arg should_trim_fields: Optional parameter to specify whether the
            values between delimiters in a delimited file should have whitespace
            trimmed from them
        :arg timeout: Timeout after which the analysis will be aborted, default
            '25s'
        :arg timestamp_field: Optional parameter to specify the timestamp field
            in the file
        :arg timestamp_format: Optional parameter to specify the timestamp
            format in the file - may be either a Joda or Java time format
        """
        if body in SKIP_IN_PATH:
            raise ValueError("Empty value passed for a required argument 'body'.")
        return self.transport.perform_request(
            "POST",
            "/_ml/find_file_structure",
            params=params,
            body=self._bulk_body(body),
        )