AWS Glue Glue Table Optimizer API

The Glue Table Optimizer API from AWS Glue — 5 operation(s) for glue table optimizer.

Operations 5

POST /#BatchGetTableOptimizer Batch Get Table Optimizer #
POST /#CreateTableOptimizer Create Table Optimizer #
POST /#DeleteTableOptimizer Delete Table Optimizer #
POST /#GetTableOptimizer Get Table Optimizer #
POST /#UpdateTableOptimizer Update Table Optimizer #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/aws-glue:aws-glue-table-optimizer-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

aws-glue-table-optimizer-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AWS Glue Table Optimizer API
  version: '2017-03-31'
  description: Generated from AWS's published Smithy model for AWS Glue. 5 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://glue.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
tags:
- name: Table Optimizer
paths:
  /#BatchGetTableOptimizer:
    post:
      operationId: BatchGetTableOptimizer
      summary: Batch Get Table Optimizer
      description: Returns the configuration for the specified table optimizers.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/BatchGetTableOptimizerResponse'
        '400':
          description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.BatchGetTableOptimizer
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/BatchGetTableOptimizerRequest'
      tags:
      - Table Optimizer
  /#CreateTableOptimizer:
    post:
      operationId: CreateTableOptimizer
      summary: Create Table Optimizer
      description: Creates a new table optimizer for a specific function.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/CreateTableOptimizerResponse'
        '400':
          description: AccessDeniedException; AlreadyExistsException; EntityNotFoundException; InvalidInputException; ThrottlingException; ValidationException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.CreateTableOptimizer
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/CreateTableOptimizerRequest'
      tags:
      - Table Optimizer
  /#DeleteTableOptimizer:
    post:
      operationId: DeleteTableOptimizer
      summary: Delete Table Optimizer
      description: Deletes an optimizer and all associated metadata for a table. The optimization will no longer be performed on the table.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DeleteTableOptimizerResponse'
        '400':
          description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.DeleteTableOptimizer
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeleteTableOptimizerRequest'
      tags:
      - Table Optimizer
  /#GetTableOptimizer:
    post:
      operationId: GetTableOptimizer
      summary: Get Table Optimizer
      description: Returns the configuration of all optimizers associated with a specified table.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetTableOptimizerResponse'
        '400':
          description: AccessDeniedException; EntityNotFoundException; InvalidInputException; ThrottlingException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.GetTableOptimizer
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetTableOptimizerRequest'
      tags:
      - Table Optimizer
  /#UpdateTableOptimizer:
    post:
      operationId: UpdateTableOptimizer
      summary: Update Table Optimizer
      description: Updates the configuration for an existing table optimizer.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/UpdateTableOptimizerResponse'
        '400':
          description: AccessDeniedException; ConcurrentModificationException; EntityNotFoundException; InvalidInputException; ThrottlingException; ValidationException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServiceException
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InternalServiceException'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - AWSGlue.UpdateTableOptimizer
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/UpdateTableOptimizerRequest'
      tags:
      - Table Optimizer
components:
  schemas:
    TableOptimizerRun:
      type: object
      properties:
        eventType:
          type: string
          enum:
          - starting
          - completed
          - failed
          - in_progress
          description: An event type representing the status of the table optimizer run.
        startTimestamp:
          type: string
          format: date-time
          description: Represents the epoch timestamp at which the compaction job was started within Lake Formation.
        endTimestamp:
          type: string
          format: date-time
          description: Represents the epoch timestamp at which the compaction job ended.
        metrics:
          $ref: '#/components/schemas/RunMetrics'
        error:
          type: string
          description: An error that occured during the optimizer run.
        compactionMetrics:
          $ref: '#/components/schemas/CompactionMetrics'
        compactionStrategy:
          type: string
          enum:
          - binpack
          - sort
          - z-order
          description: 'The strategy used for the compaction run. Indicates which algorithm was applied to determine how files were selected and combined during the compaction process. Valid values are: binpack: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. sort: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific colum'
        retentionMetrics:
          $ref: '#/components/schemas/RetentionMetrics'
        orphanFileDeletionMetrics:
          $ref: '#/components/schemas/OrphanFileDeletionMetrics'
    UpdateTableOptimizerRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The Catalog ID of the table.
        DatabaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        TableName:
          type: string
          description: The name of the table.
        Type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
        TableOptimizerConfiguration:
          $ref: '#/components/schemas/TableOptimizerConfiguration'
      required:
      - CatalogId
      - DatabaseName
      - TableName
      - Type
      - TableOptimizerConfiguration
    RunMetrics:
      type: object
      properties:
        NumberOfBytesCompacted:
          type: string
          description: The number of bytes removed by the compaction job run.
        NumberOfFilesCompacted:
          type: string
          description: The number of files removed by the compaction job run.
        NumberOfDpus:
          type: string
          description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
        JobDurationInHour:
          type: string
          description: The duration of the job in hours.
    UpdateTableOptimizerResponse:
      type: object
      properties: {}
    IcebergOrphanFileDeletionConfiguration:
      type: object
      properties:
        orphanFileRetentionPeriodInDays:
          type: integer
          description: The number of days that orphan files should be retained before file deletion. If an input is not provided, the default value 3 will be used.
        location:
          type: string
          description: Specifies a directory in which to look for files (defaults to the table's location). You may choose a sub-directory rather than the top-level table location.
        runRateInHours:
          type: integer
          description: The interval in hours between orphan file deletion job runs. This parameter controls how frequently the orphan file deletion optimizer will run to clean up orphan files. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.
    BatchGetTableOptimizerEntry:
      type: object
      properties:
        catalogId:
          type: string
          description: The Catalog ID of the table.
        databaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        tableName:
          type: string
          description: The name of the table.
        type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
    RetentionMetrics:
      type: object
      properties:
        IcebergMetrics:
          $ref: '#/components/schemas/IcebergRetentionMetrics'
    TableOptimizerConfiguration:
      type: object
      properties:
        roleArn:
          type: string
          description: A role passed by the caller which gives the service permission to update the resources associated with the optimizer on the caller's behalf.
        enabled:
          type: boolean
          description: Whether table optimization is enabled.
        vpcConfiguration:
          $ref: '#/components/schemas/TableOptimizerVpcConfiguration'
        compactionConfiguration:
          $ref: '#/components/schemas/CompactionConfiguration'
        retentionConfiguration:
          $ref: '#/components/schemas/RetentionConfiguration'
        orphanFileDeletionConfiguration:
          $ref: '#/components/schemas/OrphanFileDeletionConfiguration'
    DeleteTableOptimizerRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The Catalog ID of the table.
        DatabaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        TableName:
          type: string
          description: The name of the table.
        Type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
      required:
      - CatalogId
      - DatabaseName
      - TableName
      - Type
    TableOptimizer:
      type: object
      properties:
        type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: 'The type of table optimizer. The valid values are: compaction: for managing compaction with a table optimizer. retention: for managing the retention of snapshot with a table optimizer. orphan_file_deletion: for managing the deletion of orphan files with a table optimizer.'
        configuration:
          $ref: '#/components/schemas/TableOptimizerConfiguration'
        lastRun:
          $ref: '#/components/schemas/TableOptimizerRun'
        configurationSource:
          type: string
          enum:
          - catalog
          - table
          description: Specifies the source of the optimizer configuration. This indicates how the table optimizer was configured and which entity or service initiated the configuration.
    OrphanFileDeletionConfiguration:
      type: object
      properties:
        icebergConfiguration:
          $ref: '#/components/schemas/IcebergOrphanFileDeletionConfiguration'
    CompactionConfiguration:
      type: object
      properties:
        icebergConfiguration:
          $ref: '#/components/schemas/IcebergCompactionConfiguration'
    RetentionConfiguration:
      type: object
      properties:
        icebergConfiguration:
          $ref: '#/components/schemas/IcebergRetentionConfiguration'
    IcebergOrphanFileDeletionMetrics:
      type: object
      properties:
        NumberOfOrphanFilesDeleted:
          type: integer
          description: The number of orphan files deleted by the orphan file deletion job run.
        DpuHours:
          type: number
          description: The number of DPU hours consumed by the job.
        NumberOfDpus:
          type: integer
          description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
        JobDurationInHour:
          type: number
          description: The duration of the job in hours.
    IcebergCompactionConfiguration:
      type: object
      properties:
        strategy:
          type: string
          enum:
          - binpack
          - sort
          - z-order
          description: 'The strategy to use for compaction. Valid values are: binpack: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. sort: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific columns. To use this strategy, you must first define a sort order in your Iceberg table properties using the sort_order table prop'
        minInputFiles:
          type: integer
          description: The minimum number of data files that must be present in a partition before compaction will actually compact files. This parameter helps control when compaction is triggered, preventing unnecessary compaction operations on partitions with few files. If an input is not provided, the default value 100 will be used.
        deleteFileThreshold:
          type: integer
          description: The minimum number of deletes that must be present in a data file to make it eligible for compaction. This parameter helps optimize compaction by focusing on files that contain a significant number of delete operations, which can improve query performance by removing deleted records. If an input is not provided, the default value 1 will be used.
    GetTableOptimizerResponse:
      type: object
      properties:
        CatalogId:
          type: string
          description: The Catalog ID of the table.
        DatabaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        TableName:
          type: string
          description: The name of the table.
        TableOptimizer:
          $ref: '#/components/schemas/TableOptimizer'
    CompactionMetrics:
      type: object
      properties:
        IcebergMetrics:
          $ref: '#/components/schemas/IcebergCompactionMetrics'
    TableOptimizerVpcConfiguration:
      type: object
      properties:
        glueConnectionName:
          type: string
          description: The name of the Glue connection used for the VPC for the table optimizer.
      description: Exactly one member is set.
    CreateTableOptimizerRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The Catalog ID of the table.
        DatabaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        TableName:
          type: string
          description: The name of the table.
        Type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
        TableOptimizerConfiguration:
          $ref: '#/components/schemas/TableOptimizerConfiguration'
      required:
      - CatalogId
      - DatabaseName
      - TableName
      - Type
      - TableOptimizerConfiguration
    GetTableOptimizerRequest:
      type: object
      properties:
        CatalogId:
          type: string
          description: The Catalog ID of the table.
        DatabaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        TableName:
          type: string
          description: The name of the table.
        Type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
      required:
      - CatalogId
      - DatabaseName
      - TableName
      - Type
    CreateTableOptimizerResponse:
      type: object
      properties: {}
    BatchGetTableOptimizerResponse:
      type: object
      properties:
        TableOptimizers:
          type: array
          items:
            $ref: '#/components/schemas/BatchTableOptimizer'
          description: A list of BatchTableOptimizer objects.
        Failures:
          type: array
          items:
            $ref: '#/components/schemas/BatchGetTableOptimizerError'
          description: A list of errors from the operation.
    IcebergRetentionConfiguration:
      type: object
      properties:
        snapshotRetentionPeriodInDays:
          type: integer
          description: The number of days to retain the Iceberg snapshots. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 5 will be used.
        numberOfSnapshotsToRetain:
          type: integer
          description: The number of Iceberg snapshots to retain within the retention period. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 1 will be used.
        cleanExpiredFiles:
          type: boolean
          description: If set to false, snapshots are only deleted from table metadata, and the underlying data and metadata files are not deleted.
        runRateInHours:
          type: integer
          description: The interval in hours between retention job runs. This parameter controls how frequently the retention optimizer will run to clean up expired snapshots. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.
    BatchGetTableOptimizerRequest:
      type: object
      properties:
        Entries:
          type: array
          items:
            $ref: '#/components/schemas/BatchGetTableOptimizerEntry'
          description: A list of BatchGetTableOptimizerEntry objects specifying the table optimizers to retrieve.
      required:
      - Entries
    OrphanFileDeletionMetrics:
      type: object
      properties:
        IcebergMetrics:
          $ref: '#/components/schemas/IcebergOrphanFileDeletionMetrics'
    DeleteTableOptimizerResponse:
      type: object
      properties: {}
    BatchTableOptimizer:
      type: object
      properties:
        catalogId:
          type: string
          description: The Catalog ID of the table.
        databaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        tableName:
          type: string
          description: The name of the table.
        tableOptimizer:
          $ref: '#/components/schemas/TableOptimizer'
    BatchGetTableOptimizerError:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetail'
        catalogId:
          type: string
          description: The Catalog ID of the table.
        databaseName:
          type: string
          description: The name of the database in the catalog in which the table resides.
        tableName:
          type: string
          description: The name of the table.
        type:
          type: string
          enum:
          - compaction
          - retention
          - orphan_file_deletion
          description: The type of table optimizer.
    AccessDeniedException:
      type: object
      properties:
        Message:
          type: string
          description: A message describing the problem.
    InternalServiceException:
      type: object
      properties:
        Message:
          type: string
          description: A message describing the problem.
    IcebergRetentionMetrics:
      type: object
      properties:
        NumberOfDataFilesDeleted:
          type: integer
          description: The number of data files deleted by the retention job run.
        NumberOfManifestFilesDeleted:
          type: integer
          description: The number of manifest files deleted by the retention job run.
        NumberOfManifestListsDeleted:
          type: integer
          description: The number of manifest lists deleted by the retention job run.
        DpuHours:
          type: number
          description: The number of DPU hours consumed by the job.
        NumberOfDpus:
          type: integer
          description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
        JobDurationInHour:
          type: number
          description: The duration of the job in hours.
    IcebergCompactionMetrics:
      type: object
      properties:
        NumberOfBytesCompacted:
          type: integer
          description: The number of bytes removed by the compaction job run.
        NumberOfFilesCompacted:
          type: integer
          description: The number of files removed by the compaction job run.
        DpuHours:
          type: number
          description: The number of DPU hours consumed by the job.
        NumberOfDpus:
          type: integer
          description: The number of DPUs consumed by the job, rounded up to the nearest whole number.
        JobDurationInHour:
          type: number
          description: The duration of the job in hours.
    ErrorDetail:
      type: object
      properties:
        ErrorCode:
          type: string
          description: The code associated with this error.
        ErrorMessage:
          type: string
          description: A message describing the error.
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: glue
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/582e55931c45b944739742a2c1620b6026dd2d13/models/glue/service/2017-03-31/glue-2017-03-31.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)