openapi: 3.1.0 info: title: Amazon S3 Select (object-level) description: '1 operations from the Amazon S3 REST API, generated from the authoritative service model. S3 identifies these operations by the `select` query subresource, which is declared as a required query parameter on each one because an OpenAPI path cannot carry a query string. Generated from boto/botocore `service-2.json` at `aeb03fc4ae530e0b3f47d588b6021581db870c8c` (Apache-2.0). Responses are XML.' version: '2006-03-01' contact: name: AWS Support url: https://aws.amazon.com/premiumsupport/ externalDocs: description: Amazon S3 API Reference url: https://docs.aws.amazon.com/AmazonS3/latest/API/ servers: - url: https://s3.{region}.amazonaws.com variables: region: default: us-east-1 tags: - name: select paths: /{Bucket}/{Key}: post: operationId: SelectObjectContent summary: 'This operation is not supported for directory buckets. This action filters the contents of an Amazon S3 object based on ' description: 'This operation is not supported for directory buckets. This action filters 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 also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response. This functionality is not supported for Amazon S3 on Outposts. For more information about Amazon S3 Select, see Selecting Content from Objects and SELECT Command in the Amazon S3 User Guide. Permissions You must have the s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon S3 User Guide. Object Data Formats You can use Amazon S3 Select to query objects that have the following format properties: CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format. UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports. GZIP or BZIP' tags: - select parameters: - name: select in: query required: true description: Selects this operation. S3 identifies it by the `select` subresource. schema: type: string - name: Bucket in: path required: true description: The S3 bucket. schema: type: string - name: Key in: path required: true description: The object key. schema: type: string - name: x-amz-server-side-encryption-customer-algorithm in: header required: false description: The server-side encryption (SSE) algorithm used to encrypt the object. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data u schema: type: string - name: x-amz-server-side-encryption-customer-key in: header required: false description: 'The server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C keys ' schema: type: string - name: x-amz-server-side-encryption-customer-key-MD5 in: header required: false description: The MD5 server-side encryption (SSE) customer managed key. This parameter is needed only when the object was created using a checksum algorithm. For more information, see Protecting data using SSE-C k schema: type: string - name: x-amz-expected-bucket-owner in: header required: false description: The account ID of the expected bucket owner. If the account ID that you provide does not match the actual owner of the bucket, the request fails with the HTTP status code 403 Forbidden (access denied) schema: type: string responses: '200': description: Success. S3 answers in XML, not JSON. x-output-shape: SelectObjectContentOutput '403': description: AccessDenied. S3 validates the signature before it routes the operation, so this does not distinguish an unsupported operation from an unauthorised one. x-s3-greedy-path-segment: 'AWS writes this route as `/{Bucket}/{Key+}`. The trailing `+` marks a greedy segment, which OpenAPI templating cannot express: an S3 object key may contain slashes, so this parameter is not a single path component.'