com.amazonaws.services.lakeformation.AWSLakeFormation Maven / Gradle / Ivy
Show all versions of aws-java-sdk-lakeformation Show documentation
/*
* Copyright 2019-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.lakeformation;
import javax.annotation.Generated;
import com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.lakeformation.model.*;
/**
* Interface for accessing AWS Lake Formation.
*
* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from
* {@link com.amazonaws.services.lakeformation.AbstractAWSLakeFormation} instead.
*
*
* Lake Formation
*
* Defines the public endpoint for the Lake Formation service.
*
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public interface AWSLakeFormation {
/**
* The region metadata service name for computing region endpoints. You can use this value to retrieve metadata
* (such as supported regions) of the service.
*
* @see RegionUtils#getRegionsForService(String)
*/
String ENDPOINT_PREFIX = "lakeformation";
/**
*
* Attaches one or more LF-tags to an existing resource.
*
*
* @param addLFTagsToResourceRequest
* @return Result of the AddLFTagsToResource operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.AddLFTagsToResource
* @see AWS API Documentation
*/
AddLFTagsToResourceResult addLFTagsToResource(AddLFTagsToResourceRequest addLFTagsToResourceRequest);
/**
*
* Allows a caller to assume an IAM role decorated as the SAML user specified in the SAML assertion included in the
* request. This decoration allows Lake Formation to enforce access policies against the SAML users and groups. This
* API operation requires SAML federation setup in the caller’s account as it can only be called with valid SAML
* assertions. Lake Formation does not scope down the permission of the assumed role. All permissions attached to
* the role via the SAML federation setup will be included in the role session.
*
*
* This decorated role is expected to access data in Amazon S3 by getting temporary access from Lake Formation which
* is authorized via the virtual API GetDataAccess
. Therefore, all SAML roles that can be assumed via
* AssumeDecoratedRoleWithSAML
must at a minimum include lakeformation:GetDataAccess
in
* their role policies. A typical IAM policy attached to such a role would look as follows:
*
*
* @param assumeDecoratedRoleWithSAMLRequest
* @return Result of the AssumeDecoratedRoleWithSAML operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.AssumeDecoratedRoleWithSAML
* @see AWS API Documentation
*/
AssumeDecoratedRoleWithSAMLResult assumeDecoratedRoleWithSAML(AssumeDecoratedRoleWithSAMLRequest assumeDecoratedRoleWithSAMLRequest);
/**
*
* Batch operation to grant permissions to the principal.
*
*
* @param batchGrantPermissionsRequest
* @return Result of the BatchGrantPermissions operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.BatchGrantPermissions
* @see AWS API Documentation
*/
BatchGrantPermissionsResult batchGrantPermissions(BatchGrantPermissionsRequest batchGrantPermissionsRequest);
/**
*
* Batch operation to revoke permissions from the principal.
*
*
* @param batchRevokePermissionsRequest
* @return Result of the BatchRevokePermissions operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.BatchRevokePermissions
* @see AWS API Documentation
*/
BatchRevokePermissionsResult batchRevokePermissions(BatchRevokePermissionsRequest batchRevokePermissionsRequest);
/**
*
* Attempts to cancel the specified transaction. Returns an exception if the transaction was previously committed.
*
*
* @param cancelTransactionRequest
* @return Result of the CancelTransaction operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws TransactionCommittedException
* Contains details about an error where the specified transaction has already been committed and cannot be
* used for UpdateTableObjects
.
* @throws TransactionCommitInProgressException
* Contains details about an error related to a transaction commit that was in progress.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.CancelTransaction
* @see AWS API Documentation
*/
CancelTransactionResult cancelTransaction(CancelTransactionRequest cancelTransactionRequest);
/**
*
* Attempts to commit the specified transaction. Returns an exception if the transaction was previously aborted.
* This API action is idempotent if called multiple times for the same transaction.
*
*
* @param commitTransactionRequest
* @return Result of the CommitTransaction operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws TransactionCanceledException
* Contains details about an error related to a transaction that was cancelled.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.CommitTransaction
* @see AWS API Documentation
*/
CommitTransactionResult commitTransaction(CommitTransactionRequest commitTransactionRequest);
/**
*
* Creates a data cell filter to allow one to grant access to certain columns on certain rows.
*
*
* @param createDataCellsFilterRequest
* @return Result of the CreateDataCellsFilter operation returned by the service.
* @throws AlreadyExistsException
* A resource to be created or added already exists.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws ResourceNumberLimitExceededException
* A resource numerical limit was exceeded.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.CreateDataCellsFilter
* @see AWS API Documentation
*/
CreateDataCellsFilterResult createDataCellsFilter(CreateDataCellsFilterRequest createDataCellsFilterRequest);
/**
*
* Creates an LF-tag with the specified name and values.
*
*
* @param createLFTagRequest
* @return Result of the CreateLFTag operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws ResourceNumberLimitExceededException
* A resource numerical limit was exceeded.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.CreateLFTag
* @see AWS API
* Documentation
*/
CreateLFTagResult createLFTag(CreateLFTagRequest createLFTagRequest);
/**
*
* Creates an IAM Identity Center connection with Lake Formation to allow IAM Identity Center users and groups to
* access Data Catalog resources.
*
*
* @param createLakeFormationIdentityCenterConfigurationRequest
* @return Result of the CreateLakeFormationIdentityCenterConfiguration operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AlreadyExistsException
* A resource to be created or added already exists.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.CreateLakeFormationIdentityCenterConfiguration
* @see AWS API Documentation
*/
CreateLakeFormationIdentityCenterConfigurationResult createLakeFormationIdentityCenterConfiguration(
CreateLakeFormationIdentityCenterConfigurationRequest createLakeFormationIdentityCenterConfigurationRequest);
/**
*
* Enforce Lake Formation permissions for the given databases, tables, and principals.
*
*
* @param createLakeFormationOptInRequest
* @return Result of the CreateLakeFormationOptIn operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.CreateLakeFormationOptIn
* @see AWS API Documentation
*/
CreateLakeFormationOptInResult createLakeFormationOptIn(CreateLakeFormationOptInRequest createLakeFormationOptInRequest);
/**
*
* Deletes a data cell filter.
*
*
* @param deleteDataCellsFilterRequest
* @return Result of the DeleteDataCellsFilter operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.DeleteDataCellsFilter
* @see AWS API Documentation
*/
DeleteDataCellsFilterResult deleteDataCellsFilter(DeleteDataCellsFilterRequest deleteDataCellsFilterRequest);
/**
*
* Deletes the specified LF-tag given a key name. If the input parameter tag key was not found, then the operation
* will throw an exception. When you delete an LF-tag, the LFTagPolicy
attached to the LF-tag becomes
* invalid. If the deleted LF-tag was still assigned to any resource, the tag policy attach to the deleted LF-tag
* will no longer be applied to the resource.
*
*
* @param deleteLFTagRequest
* @return Result of the DeleteLFTag operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.DeleteLFTag
* @see AWS API
* Documentation
*/
DeleteLFTagResult deleteLFTag(DeleteLFTagRequest deleteLFTagRequest);
/**
*
* Deletes an IAM Identity Center connection with Lake Formation.
*
*
* @param deleteLakeFormationIdentityCenterConfigurationRequest
* @return Result of the DeleteLakeFormationIdentityCenterConfiguration operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.DeleteLakeFormationIdentityCenterConfiguration
* @see AWS API Documentation
*/
DeleteLakeFormationIdentityCenterConfigurationResult deleteLakeFormationIdentityCenterConfiguration(
DeleteLakeFormationIdentityCenterConfigurationRequest deleteLakeFormationIdentityCenterConfigurationRequest);
/**
*
* Remove the Lake Formation permissions enforcement of the given databases, tables, and principals.
*
*
* @param deleteLakeFormationOptInRequest
* @return Result of the DeleteLakeFormationOptIn operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.DeleteLakeFormationOptIn
* @see AWS API Documentation
*/
DeleteLakeFormationOptInResult deleteLakeFormationOptIn(DeleteLakeFormationOptInRequest deleteLakeFormationOptInRequest);
/**
*
* For a specific governed table, provides a list of Amazon S3 objects that will be written during the current
* transaction and that can be automatically deleted if the transaction is canceled. Without this call, no Amazon S3
* objects are automatically deleted when a transaction cancels.
*
*
* The Glue ETL library function write_dynamic_frame.from_catalog()
includes an option to automatically
* call DeleteObjectsOnCancel
before writes. For more information, see Rolling Back Amazon S3 Writes.
*
*
* @param deleteObjectsOnCancelRequest
* @return Result of the DeleteObjectsOnCancel operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws TransactionCommittedException
* Contains details about an error where the specified transaction has already been committed and cannot be
* used for UpdateTableObjects
.
* @throws TransactionCanceledException
* Contains details about an error related to a transaction that was cancelled.
* @throws ResourceNotReadyException
* Contains details about an error related to a resource which is not ready for a transaction.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.DeleteObjectsOnCancel
* @see AWS API Documentation
*/
DeleteObjectsOnCancelResult deleteObjectsOnCancel(DeleteObjectsOnCancelRequest deleteObjectsOnCancelRequest);
/**
*
* Deregisters the resource as managed by the Data Catalog.
*
*
* When you deregister a path, Lake Formation removes the path from the inline policy attached to your
* service-linked role.
*
*
* @param deregisterResourceRequest
* @return Result of the DeregisterResource operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @sample AWSLakeFormation.DeregisterResource
* @see AWS API Documentation
*/
DeregisterResourceResult deregisterResource(DeregisterResourceRequest deregisterResourceRequest);
/**
*
* Retrieves the instance ARN and application ARN for the connection.
*
*
* @param describeLakeFormationIdentityCenterConfigurationRequest
* @return Result of the DescribeLakeFormationIdentityCenterConfiguration operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.DescribeLakeFormationIdentityCenterConfiguration
* @see AWS API Documentation
*/
DescribeLakeFormationIdentityCenterConfigurationResult describeLakeFormationIdentityCenterConfiguration(
DescribeLakeFormationIdentityCenterConfigurationRequest describeLakeFormationIdentityCenterConfigurationRequest);
/**
*
* Retrieves the current data access role for the given resource registered in Lake Formation.
*
*
* @param describeResourceRequest
* @return Result of the DescribeResource operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @sample AWSLakeFormation.DescribeResource
* @see AWS
* API Documentation
*/
DescribeResourceResult describeResource(DescribeResourceRequest describeResourceRequest);
/**
*
* Returns the details of a single transaction.
*
*
* @param describeTransactionRequest
* @return Result of the DescribeTransaction operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.DescribeTransaction
* @see AWS API Documentation
*/
DescribeTransactionResult describeTransaction(DescribeTransactionRequest describeTransactionRequest);
/**
*
* Indicates to the service that the specified transaction is still active and should not be treated as idle and
* aborted.
*
*
* Write transactions that remain idle for a long period are automatically aborted unless explicitly extended.
*
*
* @param extendTransactionRequest
* @return Result of the ExtendTransaction operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws TransactionCommittedException
* Contains details about an error where the specified transaction has already been committed and cannot be
* used for UpdateTableObjects
.
* @throws TransactionCanceledException
* Contains details about an error related to a transaction that was cancelled.
* @throws TransactionCommitInProgressException
* Contains details about an error related to a transaction commit that was in progress.
* @sample AWSLakeFormation.ExtendTransaction
* @see AWS API Documentation
*/
ExtendTransactionResult extendTransaction(ExtendTransactionRequest extendTransactionRequest);
/**
*
* Returns a data cells filter.
*
*
* @param getDataCellsFilterRequest
* @return Result of the GetDataCellsFilter operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws InternalServiceException
* An internal service error occurred.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.GetDataCellsFilter
* @see AWS API Documentation
*/
GetDataCellsFilterResult getDataCellsFilter(GetDataCellsFilterRequest getDataCellsFilterRequest);
/**
*
* Returns the identity of the invoking principal.
*
*
* @param getDataLakePrincipalRequest
* @return Result of the GetDataLakePrincipal operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.GetDataLakePrincipal
* @see AWS API Documentation
*/
GetDataLakePrincipalResult getDataLakePrincipal(GetDataLakePrincipalRequest getDataLakePrincipalRequest);
/**
*
* Retrieves the list of the data lake administrators of a Lake Formation-managed data lake.
*
*
* @param getDataLakeSettingsRequest
* @return Result of the GetDataLakeSettings operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @sample AWSLakeFormation.GetDataLakeSettings
* @see AWS API Documentation
*/
GetDataLakeSettingsResult getDataLakeSettings(GetDataLakeSettingsRequest getDataLakeSettingsRequest);
/**
*
* Returns the Lake Formation permissions for a specified table or database resource located at a path in Amazon S3.
* GetEffectivePermissionsForPath
will not return databases and tables if the catalog is encrypted.
*
*
* @param getEffectivePermissionsForPathRequest
* @return Result of the GetEffectivePermissionsForPath operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws OperationTimeoutException
* The operation timed out.
* @throws InternalServiceException
* An internal service error occurred.
* @sample AWSLakeFormation.GetEffectivePermissionsForPath
* @see AWS API Documentation
*/
GetEffectivePermissionsForPathResult getEffectivePermissionsForPath(GetEffectivePermissionsForPathRequest getEffectivePermissionsForPathRequest);
/**
*
* Returns an LF-tag definition.
*
*
* @param getLFTagRequest
* @return Result of the GetLFTag operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.GetLFTag
* @see AWS API
* Documentation
*/
GetLFTagResult getLFTag(GetLFTagRequest getLFTagRequest);
/**
*
* Returns the state of a query previously submitted. Clients are expected to poll GetQueryState
to
* monitor the current state of the planning before retrieving the work units. A query state is only visible to the
* principal that made the initial call to StartQueryPlanning
.
*
*
* @param getQueryStateRequest
* @return Result of the GetQueryState operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.GetQueryState
* @see AWS
* API Documentation
*/
GetQueryStateResult getQueryState(GetQueryStateRequest getQueryStateRequest);
/**
*
* Retrieves statistics on the planning and execution of a query.
*
*
* @param getQueryStatisticsRequest
* @return Result of the GetQueryStatistics operation returned by the service.
* @throws StatisticsNotReadyYetException
* Contains details about an error related to statistics not being ready.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ExpiredException
* Contains details about an error where the query request expired.
* @throws ThrottledException
* Contains details about an error where the query request was throttled.
* @sample AWSLakeFormation.GetQueryStatistics
* @see AWS API Documentation
*/
GetQueryStatisticsResult getQueryStatistics(GetQueryStatisticsRequest getQueryStatisticsRequest);
/**
*
* Returns the LF-tags applied to a resource.
*
*
* @param getResourceLFTagsRequest
* @return Result of the GetResourceLFTags operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws GlueEncryptionException
* An encryption operation failed.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.GetResourceLFTags
* @see AWS API Documentation
*/
GetResourceLFTagsResult getResourceLFTags(GetResourceLFTagsRequest getResourceLFTagsRequest);
/**
*
* Returns the set of Amazon S3 objects that make up the specified governed table. A transaction ID or timestamp can
* be specified for time-travel queries.
*
*
* @param getTableObjectsRequest
* @return Result of the GetTableObjects operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws TransactionCommittedException
* Contains details about an error where the specified transaction has already been committed and cannot be
* used for UpdateTableObjects
.
* @throws TransactionCanceledException
* Contains details about an error related to a transaction that was cancelled.
* @throws ResourceNotReadyException
* Contains details about an error related to a resource which is not ready for a transaction.
* @sample AWSLakeFormation.GetTableObjects
* @see AWS
* API Documentation
*/
GetTableObjectsResult getTableObjects(GetTableObjectsRequest getTableObjectsRequest);
/**
*
* This API is identical to GetTemporaryTableCredentials
except that this is used when the target Data
* Catalog resource is of type Partition. Lake Formation restricts the permission of the vended credentials with the
* same scope down policy which restricts access to a single Amazon S3 prefix.
*
*
* @param getTemporaryGluePartitionCredentialsRequest
* @return Result of the GetTemporaryGluePartitionCredentials operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws PermissionTypeMismatchException
* The engine does not support filtering data based on the enforced permissions. For example, if you call
* the GetTemporaryGlueTableCredentials
operation with SupportedPermissionType
* equal to ColumnPermission
, but cell-level permissions exist on the table, this exception is
* thrown.
* @sample AWSLakeFormation.GetTemporaryGluePartitionCredentials
* @see AWS API Documentation
*/
GetTemporaryGluePartitionCredentialsResult getTemporaryGluePartitionCredentials(
GetTemporaryGluePartitionCredentialsRequest getTemporaryGluePartitionCredentialsRequest);
/**
*
* Allows a caller in a secure environment to assume a role with permission to access Amazon S3. In order to vend
* such credentials, Lake Formation assumes the role associated with a registered location, for example an Amazon S3
* bucket, with a scope down policy which restricts the access to a single prefix.
*
*
* @param getTemporaryGlueTableCredentialsRequest
* @return Result of the GetTemporaryGlueTableCredentials operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws PermissionTypeMismatchException
* The engine does not support filtering data based on the enforced permissions. For example, if you call
* the GetTemporaryGlueTableCredentials
operation with SupportedPermissionType
* equal to ColumnPermission
, but cell-level permissions exist on the table, this exception is
* thrown.
* @sample AWSLakeFormation.GetTemporaryGlueTableCredentials
* @see AWS API Documentation
*/
GetTemporaryGlueTableCredentialsResult getTemporaryGlueTableCredentials(GetTemporaryGlueTableCredentialsRequest getTemporaryGlueTableCredentialsRequest);
/**
*
* Returns the work units resulting from the query. Work units can be executed in any order and in parallel.
*
*
* @param getWorkUnitResultsRequest
* @return Result of the GetWorkUnitResults operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ExpiredException
* Contains details about an error where the query request expired.
* @throws ThrottledException
* Contains details about an error where the query request was throttled.
* @sample AWSLakeFormation.GetWorkUnitResults
* @see AWS API Documentation
*/
GetWorkUnitResultsResult getWorkUnitResults(GetWorkUnitResultsRequest getWorkUnitResultsRequest);
/**
*
* Retrieves the work units generated by the StartQueryPlanning
operation.
*
*
* @param getWorkUnitsRequest
* @return Result of the GetWorkUnits operation returned by the service.
* @throws WorkUnitsNotReadyYetException
* Contains details about an error related to work units not being ready.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ExpiredException
* Contains details about an error where the query request expired.
* @sample AWSLakeFormation.GetWorkUnits
* @see AWS API
* Documentation
*/
GetWorkUnitsResult getWorkUnits(GetWorkUnitsRequest getWorkUnitsRequest);
/**
*
* Grants permissions to the principal to access metadata in the Data Catalog and data organized in underlying data
* storage such as Amazon S3.
*
*
* For information about permissions, see Security and Access Control
* to Metadata and Data.
*
*
* @param grantPermissionsRequest
* @return Result of the GrantPermissions operation returned by the service.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @sample AWSLakeFormation.GrantPermissions
* @see AWS
* API Documentation
*/
GrantPermissionsResult grantPermissions(GrantPermissionsRequest grantPermissionsRequest);
/**
*
* Lists all the data cell filters on a table.
*
*
* @param listDataCellsFilterRequest
* @return Result of the ListDataCellsFilter operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws InternalServiceException
* An internal service error occurred.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.ListDataCellsFilter
* @see AWS API Documentation
*/
ListDataCellsFilterResult listDataCellsFilter(ListDataCellsFilterRequest listDataCellsFilterRequest);
/**
*
* Lists LF-tags that the requester has permission to view.
*
*
* @param listLFTagsRequest
* @return Result of the ListLFTags operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.ListLFTags
* @see AWS API
* Documentation
*/
ListLFTagsResult listLFTags(ListLFTagsRequest listLFTagsRequest);
/**
*
* Retrieve the current list of resources and principals that are opt in to enforce Lake Formation permissions.
*
*
* @param listLakeFormationOptInsRequest
* @return Result of the ListLakeFormationOptIns operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.ListLakeFormationOptIns
* @see AWS API Documentation
*/
ListLakeFormationOptInsResult listLakeFormationOptIns(ListLakeFormationOptInsRequest listLakeFormationOptInsRequest);
/**
*
* Returns a list of the principal permissions on the resource, filtered by the permissions of the caller. For
* example, if you are granted an ALTER permission, you are able to see only the principal permissions for ALTER.
*
*
* This operation returns only those permissions that have been explicitly granted.
*
*
* For information about permissions, see Security and Access Control
* to Metadata and Data.
*
*
* @param listPermissionsRequest
* @return Result of the ListPermissions operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws InternalServiceException
* An internal service error occurred.
* @sample AWSLakeFormation.ListPermissions
* @see AWS
* API Documentation
*/
ListPermissionsResult listPermissions(ListPermissionsRequest listPermissionsRequest);
/**
*
* Lists the resources registered to be managed by the Data Catalog.
*
*
* @param listResourcesRequest
* @return Result of the ListResources operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.ListResources
* @see AWS
* API Documentation
*/
ListResourcesResult listResources(ListResourcesRequest listResourcesRequest);
/**
*
* Returns the configuration of all storage optimizers associated with a specified table.
*
*
* @param listTableStorageOptimizersRequest
* @return Result of the ListTableStorageOptimizers operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws InternalServiceException
* An internal service error occurred.
* @sample AWSLakeFormation.ListTableStorageOptimizers
* @see AWS API Documentation
*/
ListTableStorageOptimizersResult listTableStorageOptimizers(ListTableStorageOptimizersRequest listTableStorageOptimizersRequest);
/**
*
* Returns metadata about transactions and their status. To prevent the response from growing indefinitely, only
* uncommitted transactions and those available for time-travel queries are returned.
*
*
* This operation can help you identify uncommitted transactions or to get information about transactions.
*
*
* @param listTransactionsRequest
* @return Result of the ListTransactions operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.ListTransactions
* @see AWS
* API Documentation
*/
ListTransactionsResult listTransactions(ListTransactionsRequest listTransactionsRequest);
/**
*
* Sets the list of data lake administrators who have admin privileges on all resources managed by Lake Formation.
* For more information on admin privileges, see Granting Lake
* Formation Permissions.
*
*
* This API replaces the current list of data lake admins with the new list being passed. To add an admin, fetch the
* current list and add the new admin to that list and pass that list in this API.
*
*
* @param putDataLakeSettingsRequest
* @return Result of the PutDataLakeSettings operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @sample AWSLakeFormation.PutDataLakeSettings
* @see AWS API Documentation
*/
PutDataLakeSettingsResult putDataLakeSettings(PutDataLakeSettingsRequest putDataLakeSettingsRequest);
/**
*
* Registers the resource as managed by the Data Catalog.
*
*
* To add or update data, Lake Formation needs read/write access to the chosen Amazon S3 path. Choose a role that
* you know has permission to do this, or choose the AWSServiceRoleForLakeFormationDataAccess service-linked role.
* When you register the first Amazon S3 path, the service-linked role and a new inline policy are created on your
* behalf. Lake Formation adds the first path to the inline policy and attaches it to the service-linked role. When
* you register subsequent paths, Lake Formation adds the path to the existing policy.
*
*
* The following request registers a new location and gives Lake Formation permission to use the service-linked role
* to access that location.
*
*
* ResourceArn = arn:aws:s3:::my-bucket UseServiceLinkedRole = true
*
*
* If UseServiceLinkedRole
is not set to true, you must provide or set the RoleArn
:
*
*
* arn:aws:iam::12345:role/my-data-access-role
*
*
* @param registerResourceRequest
* @return Result of the RegisterResource operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AlreadyExistsException
* A resource to be created or added already exists.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws ResourceNumberLimitExceededException
* A resource numerical limit was exceeded.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.RegisterResource
* @see AWS
* API Documentation
*/
RegisterResourceResult registerResource(RegisterResourceRequest registerResourceRequest);
/**
*
* Removes an LF-tag from the resource. Only database, table, or tableWithColumns resource are allowed. To tag
* columns, use the column inclusion list in tableWithColumns
to specify column input.
*
*
* @param removeLFTagsFromResourceRequest
* @return Result of the RemoveLFTagsFromResource operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws GlueEncryptionException
* An encryption operation failed.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.RemoveLFTagsFromResource
* @see AWS API Documentation
*/
RemoveLFTagsFromResourceResult removeLFTagsFromResource(RemoveLFTagsFromResourceRequest removeLFTagsFromResourceRequest);
/**
*
* Revokes permissions to the principal to access metadata in the Data Catalog and data organized in underlying data
* storage such as Amazon S3.
*
*
* @param revokePermissionsRequest
* @return Result of the RevokePermissions operation returned by the service.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @sample AWSLakeFormation.RevokePermissions
* @see AWS API Documentation
*/
RevokePermissionsResult revokePermissions(RevokePermissionsRequest revokePermissionsRequest);
/**
*
* This operation allows a search on DATABASE
resources by TagCondition
. This operation is
* used by admins who want to grant user permissions on certain TagConditions
. Before making a grant,
* the admin can use SearchDatabasesByTags
to find all resources where the given
* TagConditions
are valid to verify whether the returned resources can be shared.
*
*
* @param searchDatabasesByLFTagsRequest
* @return Result of the SearchDatabasesByLFTags operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws GlueEncryptionException
* An encryption operation failed.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.SearchDatabasesByLFTags
* @see AWS API Documentation
*/
SearchDatabasesByLFTagsResult searchDatabasesByLFTags(SearchDatabasesByLFTagsRequest searchDatabasesByLFTagsRequest);
/**
*
* This operation allows a search on TABLE
resources by LFTag
s. This will be used by
* admins who want to grant user permissions on certain LF-tags. Before making a grant, the admin can use
* SearchTablesByLFTags
to find all resources where the given LFTag
s are valid to verify
* whether the returned resources can be shared.
*
*
* @param searchTablesByLFTagsRequest
* @return Result of the SearchTablesByLFTags operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws GlueEncryptionException
* An encryption operation failed.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.SearchTablesByLFTags
* @see AWS API Documentation
*/
SearchTablesByLFTagsResult searchTablesByLFTags(SearchTablesByLFTagsRequest searchTablesByLFTagsRequest);
/**
*
* Submits a request to process a query statement.
*
*
* This operation generates work units that can be retrieved with the GetWorkUnits
operation as soon as
* the query state is WORKUNITS_AVAILABLE or FINISHED.
*
*
* @param startQueryPlanningRequest
* @return Result of the StartQueryPlanning operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ThrottledException
* Contains details about an error where the query request was throttled.
* @sample AWSLakeFormation.StartQueryPlanning
* @see AWS API Documentation
*/
StartQueryPlanningResult startQueryPlanning(StartQueryPlanningRequest startQueryPlanningRequest);
/**
*
* Starts a new transaction and returns its transaction ID. Transaction IDs are opaque objects that you can use to
* identify a transaction.
*
*
* @param startTransactionRequest
* @return Result of the StartTransaction operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @sample AWSLakeFormation.StartTransaction
* @see AWS
* API Documentation
*/
StartTransactionResult startTransaction(StartTransactionRequest startTransactionRequest);
/**
*
* Updates a data cell filter.
*
*
* @param updateDataCellsFilterRequest
* @return Result of the UpdateDataCellsFilter operation returned by the service.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.UpdateDataCellsFilter
* @see AWS API Documentation
*/
UpdateDataCellsFilterResult updateDataCellsFilter(UpdateDataCellsFilterRequest updateDataCellsFilterRequest);
/**
*
* Updates the list of possible values for the specified LF-tag key. If the LF-tag does not exist, the operation
* throws an EntityNotFoundException. The values in the delete key values will be deleted from list of possible
* values. If any value in the delete key values is attached to a resource, then API errors out with a 400 Exception
* - "Update not allowed". Untag the attribute before deleting the LF-tag key's value.
*
*
* @param updateLFTagRequest
* @return Result of the UpdateLFTag operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @throws AccessDeniedException
* Access to a resource was denied.
* @sample AWSLakeFormation.UpdateLFTag
* @see AWS API
* Documentation
*/
UpdateLFTagResult updateLFTag(UpdateLFTagRequest updateLFTagRequest);
/**
*
* Updates the IAM Identity Center connection parameters.
*
*
* @param updateLakeFormationIdentityCenterConfigurationRequest
* @return Result of the UpdateLakeFormationIdentityCenterConfiguration operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.UpdateLakeFormationIdentityCenterConfiguration
* @see AWS API Documentation
*/
UpdateLakeFormationIdentityCenterConfigurationResult updateLakeFormationIdentityCenterConfiguration(
UpdateLakeFormationIdentityCenterConfigurationRequest updateLakeFormationIdentityCenterConfigurationRequest);
/**
*
* Updates the data access role used for vending access to the given (registered) resource in Lake Formation.
*
*
* @param updateResourceRequest
* @return Result of the UpdateResource operation returned by the service.
* @throws InvalidInputException
* The input provided was not valid.
* @throws InternalServiceException
* An internal service error occurred.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @sample AWSLakeFormation.UpdateResource
* @see AWS
* API Documentation
*/
UpdateResourceResult updateResource(UpdateResourceRequest updateResourceRequest);
/**
*
* Updates the manifest of Amazon S3 objects that make up the specified governed table.
*
*
* @param updateTableObjectsRequest
* @return Result of the UpdateTableObjects operation returned by the service.
* @throws InternalServiceException
* An internal service error occurred.
* @throws InvalidInputException
* The input provided was not valid.
* @throws OperationTimeoutException
* The operation timed out.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws TransactionCommittedException
* Contains details about an error where the specified transaction has already been committed and cannot be
* used for UpdateTableObjects
.
* @throws TransactionCanceledException
* Contains details about an error related to a transaction that was cancelled.
* @throws TransactionCommitInProgressException
* Contains details about an error related to a transaction commit that was in progress.
* @throws ResourceNotReadyException
* Contains details about an error related to a resource which is not ready for a transaction.
* @throws ConcurrentModificationException
* Two processes are trying to modify a resource simultaneously.
* @sample AWSLakeFormation.UpdateTableObjects
* @see AWS API Documentation
*/
UpdateTableObjectsResult updateTableObjects(UpdateTableObjectsRequest updateTableObjectsRequest);
/**
*
* Updates the configuration of the storage optimizers for a table.
*
*
* @param updateTableStorageOptimizerRequest
* @return Result of the UpdateTableStorageOptimizer operation returned by the service.
* @throws EntityNotFoundException
* A specified entity does not exist.
* @throws InvalidInputException
* The input provided was not valid.
* @throws AccessDeniedException
* Access to a resource was denied.
* @throws InternalServiceException
* An internal service error occurred.
* @sample AWSLakeFormation.UpdateTableStorageOptimizer
* @see AWS API Documentation
*/
UpdateTableStorageOptimizerResult updateTableStorageOptimizer(UpdateTableStorageOptimizerRequest updateTableStorageOptimizerRequest);
/**
* Shuts down this client object, releasing any resources that might be held open. This is an optional method, and
* callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client
* has been shutdown, it should not be used to make any more requests.
*/
void shutdown();
/**
* Returns additional metadata for a previously executed successful request, typically used for debugging issues
* where a service isn't acting as expected. This data isn't considered part of the result data returned by an
* operation, so it's available through this separate, diagnostic interface.
*
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing a request.
*
* @param request
* The originally executed request.
*
* @return The response metadata for the specified request, or null if none is available.
*/
ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request);
}