class Aws::S3::Types::SelectObjectContentRequest

Request to filter the contents of an Amazon S3 object based on a simple Structured Query Language (SQL) statement. In the request, along with the SQL expression, you must specify a data serialization format (JSON or CSV) of the object. Amazon S3 uses this to parse object data into records. It returns only records that match the specified SQL expression. You must also specify the data serialization format for the response. For more information, see [S3Select API Documentation].

[1]: docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html

@note When making an API call, you may pass SelectObjectContentRequest

data as a hash:

    {
      bucket: "BucketName", # required
      key: "ObjectKey", # required
      sse_customer_algorithm: "SSECustomerAlgorithm",
      sse_customer_key: "SSECustomerKey",
      sse_customer_key_md5: "SSECustomerKeyMD5",
      expression: "Expression", # required
      expression_type: "SQL", # required, accepts SQL
      request_progress: {
        enabled: false,
      },
      input_serialization: { # required
        csv: {
          file_header_info: "USE", # accepts USE, IGNORE, NONE
          comments: "Comments",
          quote_escape_character: "QuoteEscapeCharacter",
          record_delimiter: "RecordDelimiter",
          field_delimiter: "FieldDelimiter",
          quote_character: "QuoteCharacter",
          allow_quoted_record_delimiter: false,
        },
        compression_type: "NONE", # accepts NONE, GZIP, BZIP2
        json: {
          type: "DOCUMENT", # accepts DOCUMENT, LINES
        },
        parquet: {
        },
      },
      output_serialization: { # required
        csv: {
          quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED
          quote_escape_character: "QuoteEscapeCharacter",
          record_delimiter: "RecordDelimiter",
          field_delimiter: "FieldDelimiter",
          quote_character: "QuoteCharacter",
        },
        json: {
          record_delimiter: "RecordDelimiter",
        },
      },
      scan_range: {
        start: 1,
        end: 1,
      },
      expected_bucket_owner: "AccountId",
    }

@!attribute [rw] bucket

The S3 bucket.
@return [String]

@!attribute [rw] key

The object key.
@return [String]

@!attribute [rw] sse_customer_algorithm

The SSE Algorithm used to encrypt the object. For more information,
see [Server-Side Encryption (Using Customer-Provided Encryption
Keys][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@return [String]

@!attribute [rw] sse_customer_key

The SSE Customer Key. For more information, see [Server-Side
Encryption (Using Customer-Provided Encryption Keys][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@return [String]

@!attribute [rw] sse_customer_key_md5

The SSE Customer Key MD5. For more information, see [Server-Side
Encryption (Using Customer-Provided Encryption Keys][1].

[1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@return [String]

@!attribute [rw] expression

The expression that is used to query the object.
@return [String]

@!attribute [rw] expression_type

The type of the provided expression (for example, SQL).
@return [String]

@!attribute [rw] request_progress

Specifies if periodic request progress information should be
enabled.
@return [Types::RequestProgress]

@!attribute [rw] input_serialization

Describes the format of the data in the object that is being
queried.
@return [Types::InputSerialization]

@!attribute [rw] output_serialization

Describes the format of the data that you want Amazon S3 to return
in response.
@return [Types::OutputSerialization]

@!attribute [rw] scan_range

Specifies the byte range of the object to get the records from. A
record is processed when its first byte is contained by the range.
This parameter is optional, but when specified, it must not be
empty. See RFC 2616, Section 14.35.1 about how to specify the start
and end of the range.

`ScanRange`may be used in the following ways:

* `<scanrange><start>50</start><end>100</end></scanrange>` - process
  only the records starting between the bytes 50 and 100 (inclusive,
  counting from zero)

* `<scanrange><start>50</start></scanrange>` - process only the
  records starting after the byte 50

* `<scanrange><end>50</end></scanrange>` - process only the records
  within the last 50 bytes of the file.
@return [Types::ScanRange]

@!attribute [rw] expected_bucket_owner

The account ID of the expected bucket owner. If the bucket is owned
by a different account, the request will fail with an HTTP `403
(Access Denied)` error.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentRequest AWS API Documentation

Constants

SENSITIVE