awswrangler/quicksight/_cancel.py (23 lines of code) (raw):
"""Amazon QuickSight Cancel Module."""
from __future__ import annotations
import logging
from typing import cast
import boto3
from awswrangler import _utils, exceptions, sts
from awswrangler.quicksight._get_list import get_dataset_id
_logger: logging.Logger = logging.getLogger(__name__)
def cancel_ingestion(
ingestion_id: str,
dataset_name: str | None = None,
dataset_id: str | None = None,
account_id: str | None = None,
boto3_session: boto3.Session | None = None,
) -> None:
"""Cancel an ongoing ingestion of data into SPICE.
Note
----
You must pass a not None value for ``dataset_name`` or ``dataset_id`` argument.
Parameters
----------
ingestion_id
Ingestion ID.
dataset_name
Dataset name.
dataset_id
Dataset ID.
account_id
If None, the account ID will be inferred from your boto3 session.
boto3_session
The default boto3 session will be used if **boto3_session** is ``None``.
Examples
--------
>>> import awswrangler as wr
>>> wr.quicksight.cancel_ingestion(ingestion_id="...", dataset_name="...")
"""
if (dataset_name is None) and (dataset_id is None):
raise exceptions.InvalidArgument("You must pass a not None name or dataset_id argument.")
if account_id is None:
account_id = sts.get_account_id(boto3_session=boto3_session)
if (dataset_id is None) and (dataset_name is not None):
dataset_id = get_dataset_id(name=dataset_name, account_id=account_id, boto3_session=boto3_session)
client = _utils.client(service_name="quicksight", session=boto3_session)
dataset_id = cast(str, dataset_id)
client.cancel_ingestion(IngestionId=ingestion_id, AwsAccountId=account_id, DataSetId=dataset_id)