:py:mod:`abacusai.client`
=========================

.. py:module:: abacusai.client


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   abacusai.client.ClientOptions
   abacusai.client.BaseApiClient
   abacusai.client.ReadOnlyClient
   abacusai.client.ApiClient



Functions
~~~~~~~~~

.. autoapisummary::

   abacusai.client._requests_retry_session
   abacusai.client._discover_service_url
   abacusai.client._get_service_discovery_url
   abacusai.client.get_source_code_info
   abacusai.client.get_module_code_from_notebook
   abacusai.client.include_modules



Attributes
~~~~~~~~~~

.. autoapisummary::

   abacusai.client.DEFAULT_SERVER


.. py:data:: DEFAULT_SERVER
   :value: 'https://api.abacus.ai'

   

.. py:function:: _requests_retry_session(retries=5, backoff_factor=0.1, status_forcelist=(502, 504), session=None)


.. py:function:: _discover_service_url(service_discovery_url, client_version, deployment_id, deployment_token)


.. py:function:: _get_service_discovery_url()


.. py:class:: ClientOptions(exception_on_404 = True, server = DEFAULT_SERVER)

   Options for configuring the ApiClient

   :param exception_on_404: If true, will raise an exception on a 404 from the server, else will return None.
   :type exception_on_404: bool
   :param server: The default server endpoint to use for API requests
   :type server: str


.. py:exception:: ApiException(message, http_status, exception = None)

   Bases: :py:obj:`Exception`

   Default ApiException raised by APIs

   :param message: The error message
   :type message: str
   :param http_status: The https status code raised by the server
   :type http_status: int
   :param exception: The exception class raised by the server
   :type exception: str

   .. py:method:: __str__()

      Return str(self).



.. py:class:: BaseApiClient(api_key = None, server = None, client_options = None, skip_version_check = False)

   Abstract Base API Client

   :param api_key: The api key to use as authentication to the server
   :type api_key: str
   :param server: The base server url to use to send API requets to
   :type server: str
   :param client_options: Optional API client configurations
   :type client_options: ClientOptions
   :param skip_version_check: If true, will skip checking the server's current API version on initializing the client
   :type skip_version_check: bool

   .. py:attribute:: client_version
      :value: '0.51.0'

      

   .. py:method:: _clean_api_objects(obj)


   .. py:method:: _call_api(action, method, query_params=None, body=None, files=None, parse_type=None, streamable_response=False, server_override=None)


   .. py:method:: _build_class(return_class, values)


   .. py:method:: _request(url, method, query_params=None, headers=None, body=None, files=None, stream=False)


   .. py:method:: _poll(obj, wait_states, delay = 15, timeout = 300, poll_args = {}, status_field=None)


   .. py:method:: _validate_pandas_df(df, clean_column_names)


   .. py:method:: _upload_from_pandas(upload, df, clean_column_names=False)


   .. py:method:: _upload_from_spark(upload, df)



.. py:class:: ReadOnlyClient(api_key = None, server = None, client_options = None, skip_version_check = False)

   Bases: :py:obj:`BaseApiClient`

   Abacus.AI Read Only API Client. Only contains GET methods

   :param api_key: The api key to use as authentication to the server
   :type api_key: str
   :param server: The base server url to use to send API requets to
   :type server: str
   :param client_options: Optional API client configurations
   :type client_options: ClientOptions
   :param skip_version_check: If true, will skip checking the server's current API version on initializing the client
   :type skip_version_check: bool

   .. py:method:: list_api_keys()

      Lists all of the user's API keys

      :returns: List of API Keys for the current user's organization.
      :rtype: ApiKey


   .. py:method:: list_organization_users()

      Retrieves a list of all users in the organization, including pending users who have been invited.

      :returns: An array of all the users in the organization.
      :rtype: User


   .. py:method:: describe_user()

      Retrieve the current user's information, such as their name, email address, and admin status.

      :returns: An object containing information about the current user.
      :rtype: User


   .. py:method:: list_organization_groups()

      Lists all Organizations Groups

      :returns: A list of all the organization groups within this organization.
      :rtype: OrganizationGroup


   .. py:method:: describe_organization_group(organization_group_id)

      Returns the specific organization group passed in by the user.

      :param organization_group_id: The unique identifier of the organization group to be described.
      :type organization_group_id: str

      :returns: Information about a specific organization group.
      :rtype: OrganizationGroup


   .. py:method:: describe_webhook(webhook_id)

      Describe the webhook with a given ID.

      :param webhook_id: Unique string identifier of the target webhook.
      :type webhook_id: str

      :returns: The webhook with the given ID.
      :rtype: Webhook


   .. py:method:: list_deployment_webhooks(deployment_id)

      List all the webhooks attached to a given deployment.

      :param deployment_id: Unique identifier of the target deployment.
      :type deployment_id: str

      :returns: List of the webhooks attached to the given deployment ID.
      :rtype: Webhook


   .. py:method:: list_use_cases()

      Retrieves a list of all use cases with descriptions. Use the given mappings to specify a use case when needed.

      :returns: A list of `UseCase` objects describing all the use cases addressed by the platform. For details, please refer to.
      :rtype: UseCase


   .. py:method:: describe_problem_type(problem_type)

      Describes a problem type

      :param problem_type: The problem type to get details on
      :type problem_type: str

      :returns: The problem type requirements
      :rtype: ProblemType


   .. py:method:: describe_use_case_requirements(use_case)

      This API call returns the feature requirements for a specified use case.

      :param use_case: This contains the Enum String for the use case whose dataset requirements are needed.
      :type use_case: str

      :returns: The feature requirements of the use case are returned, including all the feature groups required for the use case along with their descriptions and feature mapping details.
      :rtype: UseCaseRequirements


   .. py:method:: describe_project(project_id)

      Returns a description of a project.

      :param project_id: A unique string identifier for the project.
      :type project_id: str

      :returns: The description of the project.
      :rtype: Project


   .. py:method:: list_projects(limit = 100, start_after_id = None)

      Retrieves a list of all projects in the current organization.

      :param limit: The maximum length of the list of projects.
      :type limit: int
      :param start_after_id: The ID of the project after which the list starts.
      :type start_after_id: str

      :returns: A list of all projects in the Organization the user is currently logged in to.
      :rtype: Project


   .. py:method:: list_project_datasets(project_id)

      Retrieves all datasets associated with a specified project. This API returns all attributes of each dataset, such as its name, type, and ID.

      :param project_id: Unique string identifier associated with the project.
      :type project_id: str

      :returns: A list representing all of the datasets attached to the project.
      :rtype: ProjectDataset


   .. py:method:: get_schema(project_id, dataset_id)

      [DEPRECATED] Returns a schema given a specific dataset in a project. The schema of the dataset consists of the columns in the dataset, the data type of the column, and the column's column mapping.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str

      :returns: An array of objects for each column in the specified dataset.
      :rtype: Schema


   .. py:method:: validate_project(project_id, feature_group_ids = None)

      Validates that the specified project has all required feature group types for its use case and that all required feature columns are set.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param feature_group_ids: The list of feature group IDs to validate.
      :type feature_group_ids: list

      :returns: The project validation. If the specified project is missing required columns or feature groups, the response includes an array of objects for each missing required feature group and the missing required features in each feature group.
      :rtype: ProjectValidation


   .. py:method:: verify_and_describe_annotation(feature_group_id, feature_name = None, doc_id = None, feature_group_row_identifier = None)

      Get the latest annotation entry for a given feature group, feature, and document along with verification information.

      :param feature_group_id: The ID of the feature group the annotation is on.
      :type feature_group_id: str
      :param feature_name: The name of the feature the annotation is on.
      :type feature_name: str
      :param doc_id: The ID of the primary document the annotation is on.
      :type doc_id: str
      :param feature_group_row_identifier: The key value of the feature group row the annotation is on (cast to string). Usually the primary key value. At least one of the doc_id or key value must be provided in order to identify the correct annotation.
      :type feature_group_row_identifier: str

      :returns: The latest annotation entry for the given feature group, feature, document, and/or annotation key value. Includes the verification information.
      :rtype: AnnotationEntry


   .. py:method:: get_annotations_status(feature_group_id, feature_name = None)

      Get the status of the annotations for a given feature group and feature.

      :param feature_group_id: The ID of the feature group the annotation is on.
      :type feature_group_id: str
      :param feature_name: The name of the feature the annotation is on.
      :type feature_name: str

      :returns: The status of the annotations for the given feature group and feature.
      :rtype: AnnotationsStatus


   .. py:method:: get_feature_group_schema(feature_group_id, project_id = None)

      Returns a schema for a given FeatureGroup in a project.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param project_id: The unique ID associated with the project.
      :type project_id: str

      :returns: A list of objects for each column in the specified feature group.
      :rtype: Feature


   .. py:method:: describe_feature_group(feature_group_id)

      Describe a Feature Group.

      :param feature_group_id: A unique string identifier associated with the feature group.
      :type feature_group_id: str

      :returns: The feature group object.
      :rtype: FeatureGroup


   .. py:method:: describe_feature_group_by_table_name(table_name)

      Describe a Feature Group by its table name.

      :param table_name: The unique table name of the Feature Group to look up.
      :type table_name: str

      :returns: The Feature Group.
      :rtype: FeatureGroup


   .. py:method:: list_feature_groups(limit = 100, start_after_id = None, feature_group_template_id = None, is_including_detached_from_template = False)

      List all the feature groups

      :param limit: The number of feature groups to retrieve.
      :type limit: int
      :param start_after_id: An offset parameter to exclude all feature groups up to a specified ID.
      :type start_after_id: str
      :param feature_group_template_id: If specified, limit the results to feature groups attached to this template ID.
      :type feature_group_template_id: str
      :param is_including_detached_from_template: When feature_group_template_id is specified, include feature groups that have been detached from that template ID.
      :type is_including_detached_from_template: bool

      :returns: All the feature groups in the organization associated with the specified project.
      :rtype: FeatureGroup


   .. py:method:: list_project_feature_groups(project_id, filter_feature_group_use = None)

      List all the feature groups associated with a project

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param filter_feature_group_use: The feature group use filter, when given as an argument, only allows feature groups present in this project to be returned if they are of the given use. Possible values are:  DATA_WRANGLING,  TRAINING_INPUT,  BATCH_PREDICTION_INPUT,  BATCH_PREDICTION_OUTPUT.
      :type filter_feature_group_use: str

      :returns: All the Feature Groups in a project.
      :rtype: FeatureGroup


   .. py:method:: list_python_function_feature_groups(name, limit = 100)

      List all the feature groups associated with a python function.

      :param name: The name used to identify the Python function.
      :type name: str
      :param limit: The maximum number of feature groups to be retrieved.
      :type limit: int

      :returns: All the feature groups associated with the specified Python function ID.
      :rtype: FeatureGroup


   .. py:method:: get_feature_group_version_export_download_url(feature_group_export_id)

      Get a link to download the feature group version.

      :param feature_group_export_id: Unique identifier of the Feature Group Export to get a signed URL for.
      :type feature_group_export_id: str

      :returns: Instance containing the download URL and expiration time for the Feature Group Export.
      :rtype: FeatureGroupExportDownloadUrl


   .. py:method:: describe_feature_group_export(feature_group_export_id)

      A feature group export

      :param feature_group_export_id: Unique identifier of the feature group export.
      :type feature_group_export_id: str

      :returns: The feature group export object.
      :rtype: FeatureGroupExport


   .. py:method:: list_feature_group_exports(feature_group_id)

      Lists all of the feature group exports for the feature group

      :param feature_group_id: Unique identifier of the feature group
      :type feature_group_id: str

      :returns: List of feature group exports
      :rtype: FeatureGroupExport


   .. py:method:: get_feature_group_export_connector_errors(feature_group_export_id)

      Returns a stream containing the write errors of the feature group export database connection, if any writes failed to the database connector.

      :param feature_group_export_id: Unique identifier of the feature group export to get the errors for.
      :type feature_group_export_id: str


   .. py:method:: list_feature_group_modifiers(feature_group_id)

      List the users who can modify a given feature group.

      :param feature_group_id: Unique string identifier of the feature group.
      :type feature_group_id: str

      :returns: Information about the modification lock status and groups/organizations added to the feature group.
      :rtype: ModificationLockInfo


   .. py:method:: get_materialization_logs(feature_group_version, stdout = False, stderr = False)

      Returns logs for a materialized feature group version.

      :param feature_group_version: Unique string identifier for the feature group instance to export.
      :type feature_group_version: str
      :param stdout: Set to True to get info logs.
      :type stdout: bool
      :param stderr: Set to True to get error logs.
      :type stderr: bool

      :returns: A function logs object.
      :rtype: FunctionLogs


   .. py:method:: list_feature_group_versions(feature_group_id, limit = 100, start_after_version = None)

      Retrieves a list of all feature group versions for the specified feature group.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param limit: The maximum length of the returned versions.
      :type limit: int
      :param start_after_version: Results will start after this version.
      :type start_after_version: str

      :returns: A list of feature group versions.
      :rtype: FeatureGroupVersion


   .. py:method:: describe_feature_group_version(feature_group_version)

      Describe a feature group version.

      :param feature_group_version: The unique identifier associated with the feature group version.
      :type feature_group_version: str

      :returns: The feature group version.
      :rtype: FeatureGroupVersion


   .. py:method:: describe_feature_group_template(feature_group_template_id)

      Describe a Feature Group Template.

      :param feature_group_template_id: The unique identifier of a feature group template.
      :type feature_group_template_id: str

      :returns: The feature group template object.
      :rtype: FeatureGroupTemplate


   .. py:method:: list_feature_group_templates(limit = 100, start_after_id = None, feature_group_id = None, should_include_system_templates = False)

      List feature group templates, optionally scoped by the feature group that created the templates.

      :param limit: Maximum number of templates to be retrieved.
      :type limit: int
      :param start_after_id: Offset parameter to exclude all templates up to the specified feature group template ID.
      :type start_after_id: str
      :param feature_group_id: If specified, limit to templates created from this feature group.
      :type feature_group_id: str
      :param should_include_system_templates: If True, will include built-in templates.
      :type should_include_system_templates: bool

      :returns: All the feature groups in the organization, optionally limited by the feature group that created the template(s).
      :rtype: FeatureGroupTemplate


   .. py:method:: list_project_feature_group_templates(project_id, limit = 100, start_after_id = None, should_include_all_system_templates = False)

      List feature group templates for feature groups associated with the project.

      :param project_id: Unique string identifier to limit to templates associated with this project, e.g. templates associated with feature groups in this project.
      :type project_id: str
      :param limit: Maximum number of templates to be retrieved.
      :type limit: int
      :param start_after_id: Offset parameter to exclude all templates till the specified feature group template ID.
      :type start_after_id: str
      :param should_include_all_system_templates: If True, will include built-in templates.
      :type should_include_all_system_templates: bool

      :returns: All the feature groups in the organization, optionally limited by the feature group that created the template(s).
      :rtype: FeatureGroupTemplate


   .. py:method:: suggest_feature_group_template_for_feature_group(feature_group_id)

      Suggest values for a feature gruop template, based on a feature group.

      :param feature_group_id: Unique identifier associated with the feature group to use for suggesting values to use in the template.
      :type feature_group_id: str

      :returns: None
      :rtype: FeatureGroupTemplate


   .. py:method:: get_dataset_schema(dataset_id)

      Retrieves the column schema of a dataset.

      :param dataset_id: Unique string identifier of the dataset schema to look up.
      :type dataset_id: str

      :returns: List of column schema definitions.
      :rtype: DatasetColumn


   .. py:method:: get_file_connector_instructions(bucket, write_permission = False)

      Retrieves verification information to create a data connector to a cloud storage bucket.

      :param bucket: The fully-qualified URI of the storage bucket to verify.
      :type bucket: str
      :param write_permission: If `True`, instructions will include steps for allowing Abacus.AI to write to this service.
      :type write_permission: bool

      :returns: An object with a full description of the cloud storage bucket authentication options and bucket policy. Returns an error message if the parameters are invalid.
      :rtype: FileConnectorInstructions


   .. py:method:: list_database_connectors()

      Retrieves a list of all database connectors along with their associated attributes.

      :returns: An object containing the database connector and its attributes.
      :rtype: DatabaseConnector


   .. py:method:: list_file_connectors()

      Retrieves a list of all connected services in the organization and their current verification status.

      :returns: A list of cloud storage buckets connected to the organization.
      :rtype: FileConnector


   .. py:method:: list_database_connector_objects(database_connector_id)

      Lists querable objects in the database connector.

      :param database_connector_id: Unique string identifier for the database connector.
      :type database_connector_id: str


   .. py:method:: get_database_connector_object_schema(database_connector_id, object_name = None)

      Get the schema of an object in an database connector.

      :param database_connector_id: Unique string identifier for the database connector.
      :type database_connector_id: str
      :param object_name: Unique identifier for the object in the external system.
      :type object_name: str


   .. py:method:: list_application_connectors()

      Retrieves a list of all application connectors along with their associated attributes.

      :returns: A list of application connectors.
      :rtype: ApplicationConnector


   .. py:method:: list_application_connector_objects(application_connector_id)

      Lists querable objects in the application connector.

      :param application_connector_id: Unique string identifier for the application connector.
      :type application_connector_id: str


   .. py:method:: list_streaming_connectors()

      Retrieves a list of all streaming connectors along with their corresponding attributes.

      :returns: A list of StreamingConnector objects.
      :rtype: StreamingConnector


   .. py:method:: list_streaming_tokens()

      Retrieves a list of all streaming tokens.

      :returns: A list of streaming tokens and their associated attributes.
      :rtype: StreamingAuthToken


   .. py:method:: get_recent_feature_group_streamed_data(feature_group_id)

      Returns recently streamed data to a streaming feature group.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str


   .. py:method:: list_uploads()

      Lists all pending uploads

      :returns: A list of ongoing uploads in the organization.
      :rtype: Upload


   .. py:method:: describe_upload(upload_id)

      Retrieves the current upload status (complete or inspecting) and the list of file parts uploaded for a specified dataset upload.

      :param upload_id: The unique ID associated with the file uploaded or being uploaded in parts.
      :type upload_id: str

      :returns: Details associated with the large dataset file uploaded in parts.
      :rtype: Upload


   .. py:method:: list_datasets(limit = 100, start_after_id = None, exclude_streaming = False)

      Retrieves a list of all datasets in the organization.

      :param limit: Maximum length of the list of datasets.
      :type limit: int
      :param start_after_id: ID of the dataset after which the list starts.
      :type start_after_id: str
      :param exclude_streaming: Exclude streaming datasets from the result.
      :type exclude_streaming: bool

      :returns: List of datasets.
      :rtype: Dataset


   .. py:method:: describe_dataset(dataset_id)

      Retrieves a full description of the specified dataset, with attributes such as its ID, name, source type, etc.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str

      :returns: The dataset.
      :rtype: Dataset


   .. py:method:: describe_dataset_version(dataset_version)

      Retrieves a full description of the specified dataset version, including its ID, name, source type, and other attributes.

      :param dataset_version: Unique string identifier associated with the dataset version.
      :type dataset_version: str

      :returns: The dataset version.
      :rtype: DatasetVersion


   .. py:method:: list_dataset_versions(dataset_id, limit = 100, start_after_version = None)

      Retrieves a list of all dataset versions for the specified dataset.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param limit: The maximum length of the list of all dataset versions.
      :type limit: int
      :param start_after_version: The ID of the version after which the list starts.
      :type start_after_version: str

      :returns: A list of dataset versions.
      :rtype: DatasetVersion


   .. py:method:: get_docstore_document(doc_id)

      Return a document store document by id.

      :param doc_id: Unique Docstore string identifier for the document.
      :type doc_id: str


   .. py:method:: get_docstore_image(doc_id, max_width = None, max_height = None)

      Return a document store image by id.

      :param doc_id: A unique Docstore string identifier for the image.
      :type doc_id: str
      :param max_width: Rescales the returned image so the width is less than or equal to the given maximum width, while preserving the aspect ratio.
      :type max_width: int
      :param max_height: Rescales the returned image so the height is less than or equal to the given maximum height, while preserving the aspect ratio.
      :type max_height: int


   .. py:method:: describe_train_test_data_split_feature_group(model_id)

      Get the train and test data split for a trained model by its unique identifier. This is only supported for models with custom algorithms.

      :param model_id: The unique ID of the model. By default, the latest model version will be returned if no version is specified.
      :type model_id: str

      :returns: The feature group containing the training data and fold information.
      :rtype: FeatureGroup


   .. py:method:: describe_train_test_data_split_feature_group_version(model_version)

      Get the train and test data split for a trained model by model version. This is only supported for models with custom algorithms.

      :param model_version: The unique version ID of the model version.
      :type model_version: str

      :returns: The feature group version containing the training data and folds information.
      :rtype: FeatureGroupVersion


   .. py:method:: list_models(project_id)

      Retrieves the list of models in the specified project.

      :param project_id: Unique string identifier associated with the project.
      :type project_id: str

      :returns: A list of models.
      :rtype: Model


   .. py:method:: describe_model(model_id)

      Retrieves a full description of the specified model.

      :param model_id: Unique string identifier associated with the model.
      :type model_id: str

      :returns: Description of the model.
      :rtype: Model


   .. py:method:: set_model_objective(model_version, metric)

      Sets the best model for all model instances of the model based on the specified metric, and updates the training configuration to use the specified metric for any future model versions.

      :param model_version: The model version to set as the best model.
      :type model_version: str
      :param metric: The metric to use to determine the best model.
      :type metric: str


   .. py:method:: get_model_metrics(model_id, model_version = None, baseline_metrics = False)

      Retrieves a full list of metrics for the specified model.

      If only the model's unique identifier (model_id) is specified, the latest trained version of the model (model_version) is used.


      :param model_id: Unique string identifier for the model.
      :type model_id: str
      :param model_version: Version of the model.
      :type model_version: str
      :param baseline_metrics: If true, will also return the baseline model metrics for comparison.
      :type baseline_metrics: bool

      :returns: An object containing the model metrics and explanations for what each metric means.
      :rtype: ModelMetrics


   .. py:method:: list_model_versions(model_id, limit = 100, start_after_version = None)

      Retrieves a list of versions for a given model.

      :param model_id: Unique string identifier associated with the model.
      :type model_id: str
      :param limit: Maximum length of the list of all dataset versions.
      :type limit: int
      :param start_after_version: Unique string identifier of the version after which the list starts.
      :type start_after_version: str

      :returns: An array of model versions.
      :rtype: ModelVersion


   .. py:method:: describe_model_version(model_version)

      Retrieves a full description of the specified model version.

      :param model_version: Unique string identifier of the model version.
      :type model_version: str

      :returns: A model version.
      :rtype: ModelVersion


   .. py:method:: get_feature_importance_by_model_version(model_version)

      Gets the feature importance calculated by various methods for the model.

      :param model_version: Unique string identifier for the model version.
      :type model_version: str

      :returns: Feature importances for the model.
      :rtype: FeatureImportance


   .. py:method:: get_training_data_logs(model_version)

      Retrieves the data preparation logs during model training.

      :param model_version: The unique version ID of the model version.
      :type model_version: str

      :returns: A list of logs.
      :rtype: DataPrepLogs


   .. py:method:: set_default_model_algorithm(model_id = None, algorithm = None, data_cluster_type = None)

      Sets the model's algorithm to default for all new deployments

      :param model_id: Unique identifier of the model to set.
      :type model_id: str
      :param algorithm: Algorithm to pin in the model.
      :type algorithm: str
      :param data_cluster_type: Data cluster type to set the lead model for.
      :type data_cluster_type: str


   .. py:method:: get_training_logs(model_version, stdout = False, stderr = False)

      Returns training logs for the model.

      :param model_version: The unique version ID of the model version.
      :type model_version: str
      :param stdout: Set True to get info logs.
      :type stdout: bool
      :param stderr: Set True to get error logs.
      :type stderr: bool

      :returns: A function logs object.
      :rtype: FunctionLogs


   .. py:method:: export_custom_model_version(model_version, output_location, algorithm = None)

      Bundle custom model artifacts to a zip file, and export to the specified location.

      :param model_version: A unique string identifier for the model version.
      :type model_version: str
      :param output_location: Location to export the model artifacts results. For example, s3://a-bucket/
      :type output_location: str
      :param algorithm: The algorithm to be exported. Optional if there's only one custom algorithm in the model version.
      :type algorithm: str

      :returns: Object describing the export and its status.
      :rtype: ModelArtifactsExport


   .. py:method:: describe_model_artifacts_export(model_artifacts_export_id)

      Get the description and status of the model artifacts export.

      :param model_artifacts_export_id: A unique string identifier for the export.
      :type model_artifacts_export_id: str

      :returns: Object describing the export and its status.
      :rtype: ModelArtifactsExport


   .. py:method:: list_model_artifacts_exports(model_id, limit = 25)

      List all the model artifacts exports.

      :param model_id: A unique string identifier for the model.
      :type model_id: str
      :param limit: Maximum length of the list of all exports.
      :type limit: int

      :returns: List of model artifacts exports.
      :rtype: ModelArtifactsExport


   .. py:method:: list_model_monitors(project_id)

      Retrieves the list of model monitors in the specified project.

      :param project_id: Unique string identifier associated with the project.
      :type project_id: str

      :returns: A list of model monitors.
      :rtype: ModelMonitor


   .. py:method:: describe_model_monitor(model_monitor_id)

      Retrieves a full description of the specified model monitor.

      :param model_monitor_id: Unique string identifier associated with the model monitor.
      :type model_monitor_id: str

      :returns: Description of the model monitor.
      :rtype: ModelMonitor


   .. py:method:: get_prediction_drift(model_monitor_version)

      Gets the label and prediction drifts for a model monitor.

      :param model_monitor_version: Unique string identifier for a model monitor version created under the project.
      :type model_monitor_version: str

      :returns: Object describing training and prediction output label and prediction distributions.
      :rtype: DriftDistributions


   .. py:method:: get_model_monitor_summary(model_monitor_id)

      Gets the summary of a model monitor across versions.

      :param model_monitor_id: A unique string identifier associated with the model monitor.
      :type model_monitor_id: str

      :returns: An object describing integrity, bias violations, model accuracy and drift for the model monitor.
      :rtype: ModelMonitorSummary


   .. py:method:: list_model_monitor_versions(model_monitor_id, limit = 100, start_after_version = None)

      Retrieves a list of versions for a given model monitor.

      :param model_monitor_id: The unique ID associated with the model monitor.
      :type model_monitor_id: str
      :param limit: The maximum length of the list of all model monitor versions.
      :type limit: int
      :param start_after_version: The ID of the version after which the list starts.
      :type start_after_version: str

      :returns: A list of model monitor versions.
      :rtype: ModelMonitorVersion


   .. py:method:: describe_model_monitor_version(model_monitor_version)

      Retrieves a full description of the specified model monitor version.

      :param model_monitor_version: The unique version ID of the model monitor version.
      :type model_monitor_version: str

      :returns: A model monitor version.
      :rtype: ModelMonitorVersion


   .. py:method:: model_monitor_version_metric_data(model_monitor_version, metric_type, actual_values_to_detail = None)

      Provides the data needed for decile metrics associated with the model monitor.

      :param model_monitor_version: Unique string identifier for the model monitor version.
      :type model_monitor_version: str
      :param metric_type: The type of metric to get data for.
      :type metric_type: str
      :param actual_values_to_detail: The actual values to detail.
      :type actual_values_to_detail: list

      :returns: Data associated with the metric.
      :rtype: ModelMonitorVersionMetricData


   .. py:method:: list_organization_model_monitors(only_starred = False)

      Gets a list of Model Monitors for an organization.

      :param only_starred: Whether to return only starred Model Monitors. Defaults to False.
      :type only_starred: None

      :returns: A list of Model Monitors.
      :rtype: ModelMonitor


   .. py:method:: get_model_monitor_chart_from_organization(chart_type, limit = 15)

      Gets a list of model monitor summaries across monitors for an organization.

      :param chart_type: Type of chart (model_accuracy, bias_violations, data_integrity, or model_drift) to return.
      :type chart_type: str
      :param limit: Maximum length of the model monitors.
      :type limit: int

      :returns: List of ModelMonitorSummaryForOrganization objects describing accuracy, bias, drift, or integrity for all model monitors in an organization.
      :rtype: ModelMonitorSummaryFromOrg


   .. py:method:: get_model_monitor_summary_from_organization()

      Gets a consolidated summary of model monitors for an organization.

      :returns: A list of `ModelMonitorSummaryForOrganization` objects describing accuracy, bias, drift, and integrity for all model monitors in an organization.
      :rtype: ModelMonitorOrgSummary


   .. py:method:: list_eda(project_id)

      Retrieves the list of Exploratory Data Analysis (EDA) in the specified project.

      :param project_id: Unique string identifier associated with the project.
      :type project_id: str

      :returns: List of EDA objects.
      :rtype: Eda


   .. py:method:: describe_eda(eda_id)

      Retrieves a full description of the specified EDA object.

      :param eda_id: Unique string identifier associated with the EDA object.
      :type eda_id: str

      :returns: Description of the EDA object.
      :rtype: Eda


   .. py:method:: list_eda_versions(eda_id, limit = 100, start_after_version = None)

      Retrieves a list of versions for a given EDA object.

      :param eda_id: The unique ID associated with the EDA object.
      :type eda_id: str
      :param limit: The maximum length of the list of all EDA versions.
      :type limit: int
      :param start_after_version: The ID of the version after which the list starts.
      :type start_after_version: str

      :returns: A list of EDA versions.
      :rtype: EdaVersion


   .. py:method:: describe_eda_version(eda_version)

      Retrieves a full description of the specified EDA version.

      :param eda_version: Unique string identifier of the EDA version.
      :type eda_version: str

      :returns: An EDA version.
      :rtype: EdaVersion


   .. py:method:: get_eda_collinearity(eda_version)

      Gets the Collinearity between all features for the Exploratory Data Analysis.

      :param eda_version: Unique string identifier associated with the EDA instance.
      :type eda_version: str

      :returns: An object with a record of correlations between each feature for the EDA.
      :rtype: EdaCollinearity


   .. py:method:: get_eda_data_consistency(eda_version, transformation_feature = None)

      Gets the data consistency for the Exploratory Data Analysis.

      :param eda_version: Unique string identifier associated with the EDA instance.
      :type eda_version: str
      :param transformation_feature: The transformation feature to get consistency for.
      :type transformation_feature: str

      :returns: Object with duplication, deletion, and transformation data for data consistency analysis for an EDA.
      :rtype: EdaDataConsistency


   .. py:method:: get_collinearity_for_feature(eda_version, feature_name = None)

      Gets the Collinearity for the given feature from the Exploratory Data Analysis.

      :param eda_version: Unique string identifier associated with the EDA instance.
      :type eda_version: str
      :param feature_name: Name of the feature for which correlation is shown.
      :type feature_name: str

      :returns: Object with a record of correlations for the provided feature for an EDA.
      :rtype: EdaFeatureCollinearity


   .. py:method:: get_feature_association(eda_version, reference_feature_name, test_feature_name)

      Gets the Feature Association for the given features from the feature group version within the eda_version.

      :param eda_version: Unique string identifier associated with the EDA instance.
      :type eda_version: str
      :param reference_feature_name: Name of the feature for feature association (on x-axis for the plots generated for the Feature association in the product).
      :type reference_feature_name: str
      :param test_feature_name: Name of the feature for feature association (on y-axis for the plots generated for the Feature association in the product).
      :type test_feature_name: str

      :returns: An object with a record of data for the feature association between the two given features for an EDA version.
      :rtype: EdaFeatureAssociation


   .. py:method:: get_eda_forecasting_analysis(eda_version)

      Gets the Forecasting analysis for the Exploratory Data Analysis.

      :param eda_version: Unique string identifier associated with the EDA version.
      :type eda_version: str

      :returns: Object with forecasting analysis that includes sales_across_time, cummulative_contribution, missing_value_distribution, history_length, num_rows_histogram, product_maturity data.
      :rtype: EdaForecastingAnalysis


   .. py:method:: describe_monitor_alert(monitor_alert_id)

      Describes a given monitor alert id

      :param monitor_alert_id: Unique identifier of the monitor alert.
      :type monitor_alert_id: str

      :returns: Object containing information about the monitor alert.
      :rtype: MonitorAlert


   .. py:method:: describe_monitor_alert_version(monitor_alert_version)

      Describes a given monitor alert version id

      :param monitor_alert_version: Unique string identifier for the monitor alert.
      :type monitor_alert_version: str

      :returns: An object describing the monitor alert version.
      :rtype: MonitorAlertVersion


   .. py:method:: list_monitor_alerts_for_monitor(model_monitor_id)

      Retrieves the list of monitor alerts for a specified monitor.

      :param model_monitor_id: The unique ID associated with the model monitor.
      :type model_monitor_id: str

      :returns: A list of monitor alerts.
      :rtype: MonitorAlert


   .. py:method:: list_monitor_alert_versions_for_monitor_version(model_monitor_version)

      Retrieves the list of monitor alert versions for a specified monitor instance.

      :param model_monitor_version: The unique ID associated with the model monitor.
      :type model_monitor_version: str

      :returns: A list of monitor alert versions.
      :rtype: MonitorAlertVersion


   .. py:method:: get_model_monitoring_logs(model_monitor_version, stdout = False, stderr = False)

      Returns monitoring logs for the model.

      :param model_monitor_version: The unique version ID of the model monitor version
      :type model_monitor_version: str
      :param stdout: Set True to get info logs
      :type stdout: bool
      :param stderr: Set True to get error logs
      :type stderr: bool

      :returns: A function logs.
      :rtype: FunctionLogs


   .. py:method:: get_drift_for_feature(model_monitor_version, feature_name, nested_feature_name = None)

      Gets the feature drift associated with a single feature in an output feature group from a prediction.

      :param model_monitor_version: Unique string identifier of a model monitor version created under the project.
      :type model_monitor_version: str
      :param feature_name: Name of the feature to view the distribution of.
      :type feature_name: str
      :param nested_feature_name: Optionally, the name of the nested feature that the feature is in.
      :type nested_feature_name: str


   .. py:method:: get_outliers_for_feature(model_monitor_version, feature_name = None, nested_feature_name = None)

      Gets a list of outliers measured by a single feature (or overall) in an output feature group from a prediction.

      :param model_monitor_version: Unique string identifier for a model monitor version created under the project.
      :type model_monitor_version: str
      :param feature_name: Name of the feature to view the distribution of.
      :type feature_name: str
      :param nested_feature_name: Optionally, the name of the nested feature that the feature is in.
      :type nested_feature_name: str


   .. py:method:: get_outliers_for_batch_prediction_feature(batch_prediction_version, feature_name = None, nested_feature_name = None)

      Gets a list of outliers measured by a single feature (or overall) in an output feature group from a prediction.

      :param batch_prediction_version: Unique string identifier for a batch prediction version created under the project.
      :type batch_prediction_version: str
      :param feature_name: Name of the feature to view the distribution of.
      :type feature_name: str
      :param nested_feature_name: Optionally, the name of the nested feature that the feature is in.
      :type nested_feature_name: str


   .. py:method:: describe_deployment(deployment_id)

      Retrieves a full description of the specified deployment.

      :param deployment_id: Unique string identifier associated with the deployment.
      :type deployment_id: str

      :returns: Description of the deployment.
      :rtype: Deployment


   .. py:method:: list_deployments(project_id)

      Retrieves a list of all deployments in the specified project.

      :param project_id: The unique identifier associated with the project.
      :type project_id: str

      :returns: An array of deployments.
      :rtype: Deployment


   .. py:method:: list_deployment_tokens(project_id)

      Retrieves a list of all deployment tokens associated with the specified project.

      :param project_id: The unique ID associated with the project.
      :type project_id: str

      :returns: A list of deployment tokens.
      :rtype: DeploymentAuthToken


   .. py:method:: get_model_training_types_for_deployment(model_id, model_version = None, algorithm = None)

      Returns types of models that can be deployed for a given model instance ID.

      :param model_id: The unique ID associated with the model.
      :type model_id: str
      :param model_version: The unique ID associated with the model version to deploy.
      :type model_version: str
      :param algorithm: The unique ID associated with the algorithm to deploy.
      :type algorithm: str

      :returns: Model training types for deployment.
      :rtype: ModelTrainingTypeForDeployment


   .. py:method:: describe_refresh_policy(refresh_policy_id)

      Retrieve a single refresh policy

      :param refresh_policy_id: The unique ID associated with this refresh policy.
      :type refresh_policy_id: str

      :returns: An object representing the refresh policy.
      :rtype: RefreshPolicy


   .. py:method:: describe_refresh_pipeline_run(refresh_pipeline_run_id)

      Retrieve a single refresh pipeline run

      :param refresh_pipeline_run_id: Unique string identifier associated with the refresh pipeline run.
      :type refresh_pipeline_run_id: str

      :returns: A refresh pipeline run object.
      :rtype: RefreshPipelineRun


   .. py:method:: list_refresh_policies(project_id = None, dataset_ids = [], model_ids = [], deployment_ids = [], batch_prediction_ids = [], model_monitor_ids = [], prediction_metric_ids = [])

      List the refresh policies for the organization

      :param project_id: Optionally, a Project ID can be specified so that all datasets, models, deployments, batch predictions, prediction metrics, and model monitors are captured at the instant this policy was created.
      :type project_id: str
      :param dataset_ids: Comma-separated list of Dataset IDs.
      :type dataset_ids: list
      :param model_ids: Comma-separated list of Model IDs.
      :type model_ids: list
      :param deployment_ids: Comma-separated list of Deployment IDs.
      :type deployment_ids: list
      :param batch_prediction_ids: Comma-separated list of Batch Prediction IDs.
      :type batch_prediction_ids: list
      :param model_monitor_ids: Comma-separated list of Model Monitor IDs.
      :type model_monitor_ids: list
      :param prediction_metric_ids: Comma-separated list of Prediction Metric IDs.
      :type prediction_metric_ids: list

      :returns: List of all refresh policies in the organization.
      :rtype: RefreshPolicy


   .. py:method:: list_refresh_pipeline_runs(refresh_policy_id)

      List the the times that the refresh policy has been run

      :param refresh_policy_id: Unique identifier associated with the refresh policy.
      :type refresh_policy_id: str

      :returns: List of refresh pipeline runs for the given refresh policy ID.
      :rtype: RefreshPipelineRun


   .. py:method:: download_batch_prediction_result_chunk(batch_prediction_version, offset = 0, chunk_size = 10485760)

      Returns a stream containing the batch prediction results.

      :param batch_prediction_version: Unique string identifier of the batch prediction version to get the results from.
      :type batch_prediction_version: str
      :param offset: The offset to read from.
      :type offset: int
      :param chunk_size: The maximum amount of data to read.
      :type chunk_size: int


   .. py:method:: get_batch_prediction_connector_errors(batch_prediction_version)

      Returns a stream containing the batch prediction database connection write errors, if any writes failed for the specified batch prediction job.

      :param batch_prediction_version: Unique string identifier of the batch prediction job to get the errors for.
      :type batch_prediction_version: str


   .. py:method:: list_batch_predictions(project_id)

      Retrieves a list of batch predictions in the project.

      :param project_id: Unique string identifier of the project.
      :type project_id: str

      :returns: List of batch prediction jobs.
      :rtype: BatchPrediction


   .. py:method:: describe_batch_prediction(batch_prediction_id)

      Describe the batch prediction.

      :param batch_prediction_id: The unique identifier associated with the batch prediction.
      :type batch_prediction_id: str

      :returns: The batch prediction description.
      :rtype: BatchPrediction


   .. py:method:: list_batch_prediction_versions(batch_prediction_id, limit = 100, start_after_version = None)

      Retrieves a list of versions of a given batch prediction

      :param batch_prediction_id: Unique identifier of the batch prediction.
      :type batch_prediction_id: str
      :param limit: Number of versions to list.
      :type limit: int
      :param start_after_version: Version to start after.
      :type start_after_version: str

      :returns: List of batch prediction versions.
      :rtype: BatchPredictionVersion


   .. py:method:: describe_batch_prediction_version(batch_prediction_version)

      Describes a Batch Prediction Version.

      :param batch_prediction_version: Unique string identifier of the Batch Prediction Version.
      :type batch_prediction_version: str

      :returns: The Batch Prediction Version.
      :rtype: BatchPredictionVersion


   .. py:method:: describe_python_function(name)

      Describe a Python Function.

      :param name: The name to identify the Python function.
      :type name: str

      :returns: The Python function object.
      :rtype: PythonFunction


   .. py:method:: list_python_functions(function_type = 'FEATURE_GROUP')

      List all python functions within the organization.

      :param function_type: Optional argument to specify the type of function to list Python functions for; defaults to FEATURE_GROUP.
      :type function_type: str

      :returns: A list of PythonFunction objects.
      :rtype: PythonFunction


   .. py:method:: describe_graph_dashboard(graph_dashboard_id)

      Describes a given graph dashboard.

      :param graph_dashboard_id: Unique identifier for the graph dashboard.
      :type graph_dashboard_id: str

      :returns: An object containing information about the graph dashboard.
      :rtype: GraphDashboard


   .. py:method:: list_graph_dashboards(project_id = None)

      Lists the graph dashboards for a project

      :param project_id: Unique string identifier for the project to list graph dashboards from.
      :type project_id: str

      :returns: A list of graph dashboards.
      :rtype: GraphDashboard


   .. py:method:: delete_graph_from_dashboard(graph_reference_id)

      Deletes a python plot function from a dashboard

      :param graph_reference_id: Unique String Identifier for the graph
      :type graph_reference_id: str


   .. py:method:: describe_graph_for_dashboard(graph_reference_id)

      Describes a python plot to a graph dashboard

      :param graph_reference_id: Unique string identifier for the python function id for the graph
      :type graph_reference_id: str

      :returns: An object describing the graph dashboard.
      :rtype: PythonPlotFunction


   .. py:method:: describe_algorithm(algorithm)

      Retrieves a full description of the specified algorithm.

      :param algorithm: The name of the algorithm.
      :type algorithm: str

      :returns: The description of the algorithm.
      :rtype: Algorithm


   .. py:method:: list_algorithms(problem_type = None, project_id = None)

      List all custom algorithms, with optional filtering on Problem Type and Project ID

      :param problem_type: The problem type to query. If `None`, return all algorithms in the organization.
      :type problem_type: str
      :param project_id: The ID of the project.
      :type project_id: str

      :returns: A list of algorithms.
      :rtype: Algorithm


   .. py:method:: describe_custom_loss_function(name)

      Retrieve a full description of a previously registered custom loss function.

      :param name: Registered name of the custom loss function.
      :type name: str

      :returns: The description of the custom loss function with the given name.
      :rtype: CustomLossFunction


   .. py:method:: list_custom_loss_functions(name_prefix = None, loss_function_type = None)

      Retrieves a list of registered custom loss functions and their descriptions.

      :param name_prefix: The prefix of the names of the loss functions to list.
      :type name_prefix: str
      :param loss_function_type: The category of loss functions to search in.
      :type loss_function_type: str

      :returns: The description of the custom loss function with the given name.
      :rtype: CustomLossFunction


   .. py:method:: describe_custom_metric(name)

      Retrieves a full description of a previously registered custom metric function.

      :param name: Registered name of the custom metric.
      :type name: str

      :returns: The description of the custom metric with the given name.
      :rtype: CustomMetric


   .. py:method:: describe_custom_metric_version(custom_metric_version)

      Describes a given custom metric version

      :param custom_metric_version: A unique string identifier for the custom metric version.
      :type custom_metric_version: str

      :returns: An object describing the custom metric version.
      :rtype: CustomMetricVersion


   .. py:method:: list_custom_metrics(name_prefix = None, problem_type = None)

      Retrieves a list of registered custom metrics.

      :param name_prefix: The prefix of the names of the custom metrics.
      :type name_prefix: str
      :param problem_type: The associated problem type of the custom metrics.
      :type problem_type: str

      :returns: A list of custom metrics.
      :rtype: CustomMetric


   .. py:method:: describe_module(name)

      Retrieves a full description of the specified module.

      :param name: The name of the module.
      :type name: str

      :returns: The description of the module.
      :rtype: Module


   .. py:method:: list_modules()

      List all the modules

      :returns: A list of modules
      :rtype: Module



.. py:function:: get_source_code_info(train_function, predict_function = None, predict_many_function = None, initialize_function = None, common_functions = None)


.. py:function:: get_module_code_from_notebook(file_path)


.. py:function:: include_modules(source_code, included_modules)


.. py:class:: ApiClient(api_key = None, server = None, client_options = None, skip_version_check = False)

   Bases: :py:obj:`ReadOnlyClient`

   Abacus.AI API Client

   :param api_key: The api key to use as authentication to the server
   :type api_key: str
   :param server: The base server url to use to send API requets to
   :type server: str
   :param client_options: Optional API client configurations
   :type client_options: ClientOptions
   :param skip_version_check: If true, will skip checking the server's current API version on initializing the client
   :type skip_version_check: bool

   .. py:method:: create_dataset_from_pandas(feature_group_table_name, df, clean_column_names = False)

      [Deprecated]
      Creates a Dataset from a pandas dataframe

      :param feature_group_table_name: The table name to assign to the feature group created by this call
      :type feature_group_table_name: str
      :param df: The dataframe to upload
      :type df: pandas.DataFrame
      :param clean_column_names: If true, the dataframe's column names will be automatically cleaned to be complaint with Abacus.AI's column requirements. Otherwise it will raise a ValueError.
      :type clean_column_names: bool

      :returns: The dataset object created
      :rtype: Dataset


   .. py:method:: create_dataset_version_from_pandas(table_name_or_id, df, clean_column_names = False)

      [Deprecated]
      Updates an existing dataset from a pandas dataframe

      :param table_name_or_id: The table name of the feature group or the ID of the dataset to update
      :type table_name_or_id: str
      :param df: The dataframe to upload
      :type df: pandas.DataFrame
      :param clean_column_names: If true, the dataframe's column names will be automatically cleaned to be complaint with Abacus.AI's column requirements. Otherwise it will raise a ValueError.
      :type clean_column_names: bool

      :returns: The dataset updated
      :rtype: Dataset


   .. py:method:: create_feature_group_from_pandas_df(table_name, df, clean_column_names = False)

      Create a Feature Group from a local Pandas DataFrame.

      :param table_name: The table name to assign to the feature group created by this call
      :type table_name: str
      :param df: The dataframe to upload
      :type df: pandas.DataFrame
      :param clean_column_names: If true, the dataframe's column names will be automatically cleaned to be complaint with Abacus.AI's column requirements. Otherwise it will raise a ValueError.
      :type clean_column_names: bool


   .. py:method:: update_feature_group_from_pandas_df(table_name, df, clean_column_names = False)

      Updates a DATASET Feature Group from a local Pandas DataFrame.

      :param table_name: The table name to assign to the feature group created by this call
      :type table_name: str
      :param df: The dataframe to upload
      :type df: pandas.DataFrame
      :param clean_column_names: If true, the dataframe's column names will be automatically cleaned to be complaint with Abacus.AI's column requirements. Otherwise it will raise a ValueError.
      :type clean_column_names: bool


   .. py:method:: create_feature_group_from_spark_df(table_name, df)

      Create a Feature Group from a local Spark DataFrame.

      :param df: The dataframe to upload
      :type df: pyspark.sql.DataFrame
      :param table_name: The table name to assign to the feature group created by this call
      :type table_name: str


   .. py:method:: update_feature_group_from_spark_df(table_name, df)

      Create a Feature Group from a local Spark DataFrame.

      :param df: The dataframe to upload
      :type df: pyspark.sql.DataFrame
      :param table_name: The table name to assign to the feature group created by this call
      :type table_name: str
      :param should_wait_for_upload: Wait for dataframe to upload before returning. Some FeatureGroup methods, like materialization, may not work until upload is complete.
      :type should_wait_for_upload: bool
      :param timeout: If waiting for upload, time out after this limit.
      :type timeout: int, optional


   .. py:method:: create_spark_df_from_feature_group_version(session, feature_group_version)

      Create a Spark Dataframe in the provided Spark Session context, for a materialized Abacus Feature Group Version.

      :param session: Spark session
      :type session: pyspark.sql.SparkSession
      :param feature_group_version: Feature group version to load from
      :type feature_group_version: str

      :returns: pyspark.sql.DataFrame


   .. py:method:: create_model_from_functions(project_id, train_function, predict_function = None, training_input_tables = None, predict_many_function = None, initialize_function = None, cpu_size = None, memory = None, training_config = None, exclusive_run = False, included_modules = None, package_requirements = None, name = None, use_gpu = False)

      Creates a model from a python function

      :param project_id: The project to create the model in
      :type project_id: str
      :param train_function: The training fucntion callable to serialize and upload
      :type train_function: callable
      :param predict_function: The predict function callable to serialize and upload
      :type predict_function: callable
      :param predict_many_function: The predict many function callable to serialize and upload
      :type predict_many_function: callable
      :param initialize_function: The initialize function callable to serialize and upload
      :type initialize_function: callable
      :param training_input_tables: The input table names of the feature groups to pass to the train function
      :type training_input_tables: list
      :param cpu_size: Size of the cpu for the training function
      :type cpu_size: str
      :param memory: Memory (in GB) for the training function
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: List
      :param included_modules: A list of user-created modules that will be included, which is equivalent to 'from module import *'
      :type included_modules: list
      :param name: The name of the model
      :type name: str
      :param use_gpu: Whether this model needs gpu
      :type use_gpu: bool


   .. py:method:: create_feature_group_from_python_function(function, table_name, input_tables = None, python_function_name = None, python_function_bindings = None, cpu_size = None, memory = None, package_requirements = None, included_modules = None)

      Creates a feature group from a python function

      :param function: The function callable for the feature group
      :type function: callable
      :param table_name: The table name to give the feature group
      :type table_name: str
      :param input_tables: The input table names of the feature groups as input to the feature group function
      :type input_tables: list
      :param python_function_name: The name of the python function to create a feature group from.
      :type python_function_name: str
      :param python_function_bindings: List of python function arguments
      :type python_function_bindings: List<PythonFunctionArguments>
      :param cpu_size: Size of the cpu for the feature group function
      :type cpu_size: str
      :param memory: Memory (in GB) for the feature group function
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: List
      :param included_modules: A list of user-created modules that will be included, which is equivalent to 'from module import *'
      :type included_modules: list


   .. py:method:: update_python_function_code(name, function = None, function_variable_mappings = None, package_requirements = None, included_modules = None)

      Update custom python function with user inputs for the given python function.

      :param name: The unique name to identify the python function in an organization.
      :type name: String
      :param function: The function callable to serialize and upload.
      :type function: callable
      :param function_variable_mappings: List of python function arguments
      :type function_variable_mappings: List<PythonFunctionArguments>
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: List
      :param included_modules: A list of user-created modules that will be included, which is equivalent to 'from module import *'
      :type included_modules: list

      :returns: The python_function object.
      :rtype: PythonFunction


   .. py:method:: create_algorithm_from_function(name, problem_type, training_data_parameter_names_mapping = None, training_config_parameter_name = None, train_function = None, predict_function = None, predict_many_function = None, initialize_function = None, common_functions = None, config_options = None, is_default_enabled = False, project_id = None, use_gpu = False, package_requirements = None, included_modules = None)

      Create a new algorithm, or update existing algorithm if the name already exists

      :param name: The name to identify the algorithm, only uppercase letters, numbers and underscore allowed
      :type name: String
      :param problem_type: The type of the problem this algorithm will work on
      :type problem_type: str
      :param train_function: The training function callable to serialize and upload
      :type train_function: callable
      :param predict_function: The predict function callable to serialize and upload
      :type predict_function: callable
      :param predict_many_function: The predict many function callable to serialize and upload
      :type predict_many_function: callable
      :param initialize_function: The initialize function callable to serialize and upload
      :type initialize_function: callable
      :param common_functions: A list of functions that will be used by both train and predict functions, e.g. some data processing utilities
      :type common_functions: List of callables
      :param training_data_parameter_names_mapping: The mapping from feature group types to training data parameter names in the train function
      :type training_data_parameter_names_mapping: Dict
      :param training_config_parameter_name: The train config parameter name in the train function
      :type training_config_parameter_name: string
      :param config_options: Map dataset types and configs to train function parameter names
      :type config_options: Dict
      :param is_default_enabled: Whether train with the algorithm by default
      :param project_id: The unique version ID of the project
      :type project_id: Unique String Identifier
      :param use_gpu: Whether this algorithm needs to run on GPU
      :type use_gpu: Boolean
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: List
      :param included_modules: A list of user-created modules that will be included, which is equivalent to 'from module import *'
      :type included_modules: list


   .. py:method:: update_algorithm_from_function(algorithm, training_data_parameter_names_mapping = None, training_config_parameter_name = None, train_function = None, predict_function = None, predict_many_function = None, initialize_function = None, common_functions = None, config_options = None, is_default_enabled = None, use_gpu = None, package_requirements = None, included_modules = None)

      Create a new algorithm, or update existing algorithm if the name already exists

      :param algorithm: The name to identify the algorithm, only uppercase letters, numbers and underscore allowed
      :type algorithm: String
      :param train_function: The training fucntion callable to serialize and upload
      :type train_function: callable
      :param predict_function: The predict function callable to serialize and upload
      :type predict_function: callable
      :param predict_many_function: The predict many function callable to serialize and upload
      :type predict_many_function: callable
      :param initialize_function: The initialize function callable to serialize and upload
      :type initialize_function: callable
      :param common_functions: A list of functions that will be used by both train and predict functions, e.g. some data processing utilities
      :type common_functions: List of callables
      :param training_data_parameter_names_mapping: The mapping from feature group types to training data parameter names in the train function
      :type training_data_parameter_names_mapping: Dict
      :param training_config_parameter_name: The train config parameter name in the train function
      :type training_config_parameter_name: string
      :param config_options: Map dataset types and configs to train function parameter names
      :type config_options: Dict
      :param is_default_enabled: Whether train with the algorithm by default
      :type is_default_enabled: Boolean
      :param use_gpu: Whether this algorithm needs to run on GPU
      :type use_gpu: Boolean
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: List
      :param included_modules: A list of user-created modules that will be included, which is equivalent to 'from module import *'
      :type included_modules: list


   .. py:method:: get_train_function_input(project_id, training_table_names = None, training_data_parameter_name_override = None, training_config_parameter_name_override = None, training_config = None, custom_algorithm_config = None)

      Get the input data for the train function to test locally.

      :param project_id: The id of the project
      :type project_id: String
      :param training_table_names: A list of feature group tables used for training
      :type training_table_names: List
      :param training_data_parameter_name_override: The mapping from feature group types to training data parameter names in the train function
      :type training_data_parameter_name_override: Dict
      :param training_config_parameter_name_override: The train config parameter name in the train function
      :type training_config_parameter_name_override: String
      :param training_config: A dictionary for Abacus.AI defined training options and values
      :type training_config: Dict
      :param custom_algorithm_config: User-defined config that can be serialized by JSON
      :type custom_algorithm_config: Any

      :returns: A dictionary that maps train function parameter names to their values.


   .. py:method:: get_train_function_input_from_model_version(model_version, algorithm = None, training_config = None, custom_algorithm_config = None)

      Get the input data for the train function to test locally, based on a trained model version.

      :param model_version: The string identifier of the model version
      :type model_version: String
      :param algorithm: The particular algorithm's name, whose train function to test with
      :type algorithm: String
      :param training_config: A dictionary for Abacus.AI defined training options and values
      :type training_config: Dict
      :param custom_algorithm_config: User-defined config that can be serialized by JSON
      :type custom_algorithm_config: Any

      :returns: A dictionary that maps train function parameter names to their values.


   .. py:method:: create_custom_loss_function(name, loss_function_type, loss_function)

      Registers a new custom loss function which can be used as an objective function during model training.

      :param name: A name for the loss. Should be unique per organization. Limit - 50 chars. Only underscores, numbers, uppercase alphabets allowed
      :type name: String
      :param loss_function_type: The category of problems that this loss would be applicable to. Ex - REGRESSION_DL_TF, CLASSIFICATION_DL_TF, etc.
      :type loss_function_type: String
      :param loss_function: A python functor which can take required arguments (Ex - (y_true, y_pred)) and returns loss value(s) (Ex - An array of loss values of size batch size)
      :type loss_function: Callable

      :returns: A description of the registered custom loss function
      :rtype: CustomLossFunction

      :raises InvalidParameterError: If either loss function name or type or the passed function is invalid/incompatible
      :raises AlreadyExistsError: If the loss function with the same name already exists in the organization


   .. py:method:: update_custom_loss_function(name, loss_function)

      Updates a previously registered custom loss function with a new function implementation.

      :param name: name of the registered custom loss.
      :type name: String
      :param loss_function: A python functor which can take required arguments (Ex - (y_true, y_pred)) and returns loss value(s) (Ex - An array of loss values of size batch size)
      :type loss_function: Callable

      :returns: A description of the updated custom loss function
      :rtype: CustomLossFunction

      :raises InvalidParameterError: If either loss function name or type or the passed function is invalid/incompatible
      :raises DataNotFoundError: If a loss function with given name is not found in the organization


   .. py:method:: create_custom_metric_from_function(name, problem_type, custom_metric_function)

      Registers a new custom metric which can be used as an evaluation metric for the trained model.

      :param name: A name for the metric. Should be unique per organization. Limit - 50 chars. Only underscores, numbers, uppercase alphabets allowed.
      :type name: String
      :param problem_type: The problem type that this metric would be applicable to. e.g. - REGRESSION, FORECASTING, etc.
      :type problem_type: String
      :param custom_metric_function: A python functor which can take required arguments e.g. (y_true, y_pred) and returns the metric value.
      :type custom_metric_function: Callable

      :returns: The newly created custom metric.
      :rtype: CustomMetric

      :raises InvalidParameterError: If either custom metric name or type or the passed function is invalid/incompatible.
      :raises AlreadyExistsError: If a custom metric with given name already exists in the organization.


   .. py:method:: update_custom_metric_from_function(name, custom_metric_function)

      Updates a previously registered custom metric.

      :param name: A name for the metric. Should be unique per organization. Limit - 50 chars. Only underscores, numbers, uppercase alphabets allowed.
      :type name: String
      :param custom_metric_function: A python functor which can take required arguments e.g. (y_true, y_pred) and returns the metric value.
      :type custom_metric_function: Callable

      :returns: The updated custom metric.
      :rtype: CustomMetric

      :raises InvalidParameterError: If either custom metric name or type or the passed function is invalid/incompatible.
      :raises DataNotFoundError: If a custom metric with given name is not found in the organization.


   .. py:method:: create_module_from_notebook(file_path, name)

      Create a module with the code marked in the notebook. Use '#module_start#' to mark the starting code cell and '#module_end#' for the
      ending code cell.

      :param file_path: Notebook's relative path to the root directory, e.g. 'n1.ipynb'
      :type file_path: String
      :param name: Name of the module to create.
      :type name: String

      :returns: the created Abacus.ai module object
      :rtype: Module


   .. py:method:: update_module_from_notebook(file_path, name)

      Update the module with the code marked in the notebook. Use '#module_start#' to mark the starting code cell and '#module_end#' for the
      ending code cell.

      :param file_path: Notebook's relative path to the root directory, e.g. 'n1.ipynb'
      :type file_path: String
      :param name: Name of the module to create.
      :type name: String

      :returns: the created Abacus.ai module object
      :rtype: Module


   .. py:method:: import_module(name)

      Import a module created previously. It will reload if has been imported before.
      This will be equivalent to including from that module file.

      :param name: Name of the module to import.
      :type name: String

      :returns: the imported python module
      :rtype: module


   .. py:method:: add_user_to_organization(email)

      Invite a user to your organization. This method will send the specified email address an invitation link to join your organization.

      :param email: The email address to invite to your organization.
      :type email: str


   .. py:method:: create_organization_group(group_name, permissions, default_group = False)

      Creates a new Organization Group.

      :param group_name: The name of the group.
      :type group_name: str
      :param permissions: The list of permissions to initialize the group with.
      :type permissions: list
      :param default_group: If True, this group will replace the current default group.
      :type default_group: bool

      :returns: Information about the created Organization Group.
      :rtype: OrganizationGroup


   .. py:method:: add_organization_group_permission(organization_group_id, permission)

      Adds a permission to the specified Organization Group.

      :param organization_group_id: Unique string identifier of the Organization Group.
      :type organization_group_id: str
      :param permission: Permission to add to the Organization Group.
      :type permission: str


   .. py:method:: remove_organization_group_permission(organization_group_id, permission)

      Removes a permission from the specified Organization Group.

      :param organization_group_id: Unique string identifier of the Organization Group.
      :type organization_group_id: str
      :param permission: The permission to remove from the Organization Group.
      :type permission: str


   .. py:method:: delete_organization_group(organization_group_id)

      Deletes the specified Organization Group

      :param organization_group_id: Unique string identifier of the organization group.
      :type organization_group_id: str


   .. py:method:: add_user_to_organization_group(organization_group_id, email)

      Adds a user to the specified Organization Group.

      :param organization_group_id: Unique string identifier of the Organization Group.
      :type organization_group_id: str
      :param email: Email of the user to be added to the group.
      :type email: str


   .. py:method:: remove_user_from_organization_group(organization_group_id, email)

      Removes a user from an Organization Group.

      :param organization_group_id: Unique string identifier of the Organization Group.
      :type organization_group_id: str
      :param email: Email of the user to remove.
      :type email: str


   .. py:method:: set_default_organization_group(organization_group_id)

      Sets the default Organization Group to which all new users joining an organization are automatically added.

      :param organization_group_id: Unique string identifier of the Organization Group.
      :type organization_group_id: str


   .. py:method:: delete_api_key(api_key_id)

      Delete a specified API key.

      :param api_key_id: The ID of the API key to delete.
      :type api_key_id: str


   .. py:method:: remove_user_from_organization(email)

      Removes the specified user from the organization. You can remove yourself; otherwise, you must be an organization administrator to use this method to remove other users from the organization.

      :param email: The email address of the user to remove from the organization.
      :type email: str


   .. py:method:: create_deployment_webhook(deployment_id, endpoint, webhook_event_type, payload_template = None)

      Create a webhook attached to a given deployment ID.

      :param deployment_id: Unique string identifier for the deployment this webhook will attach to.
      :type deployment_id: str
      :param endpoint: URI that the webhook will send HTTP POST requests to.
      :type endpoint: str
      :param webhook_event_type: One of 'DEPLOYMENT_START', 'DEPLOYMENT_SUCCESS', or 'DEPLOYMENT_FAILED'.
      :type webhook_event_type: str
      :param payload_template: Template for the body of the HTTP POST requests. Defaults to {}.
      :type payload_template: dict

      :returns: The webhook attached to the deployment.
      :rtype: Webhook


   .. py:method:: update_webhook(webhook_id, endpoint = None, webhook_event_type = None, payload_template = None)

      Update the webhook

      :param webhook_id: The ID of the webhook to be updated.
      :type webhook_id: str
      :param endpoint: If provided, changes the webhook's endpoint.
      :type endpoint: str
      :param webhook_event_type: If provided, changes the event type.
      :type webhook_event_type: str
      :param payload_template: If provided, changes the payload template.
      :type payload_template: dict


   .. py:method:: delete_webhook(webhook_id)

      Delete the webhook

      :param webhook_id: Unique identifier of the target webhook.
      :type webhook_id: str


   .. py:method:: create_project(name, use_case)

      Creates a project with the specified project name and use case. Creating a project creates a container for all datasets and models associated with a particular problem/project. For example, if you want to create a model to detect fraud, you need to first create a project, upload datasets, create feature groups, and then create one or more models to get predictions for your use case.

      :param name: The project's name.
      :type name: str
      :param use_case: The use case that the project solves. Refer to our [guide on use cases](https://api.abacus.ai/app/help/useCases) for further details of each use case. The following enums are currently available for you to choose from:  LANGUAGE_DETECTION,  NLP_SENTIMENT,  NLP_QA,  NLP_SEARCH,  NLP_CHAT,  NLP_SENTENCE_BOUNDARY_DETECTION,  NLP_CLASSIFICATION,  NLP_SUMMARIZATION,  NLP_DOCUMENT_VISUALIZATION,  EMBEDDINGS_ONLY,  MODEL_WITH_EMBEDDINGS,  TORCH_MODEL,  TORCH_MODEL_WITH_EMBEDDINGS,  PYTHON_MODEL,  NOTEBOOK_PYTHON_MODEL,  DOCKER_MODEL,  DOCKER_MODEL_WITH_EMBEDDINGS,  CUSTOMER_CHURN,  ENERGY,  FINANCIAL_METRICS,  CUMULATIVE_FORECASTING,  FRAUD_ACCOUNT,  FRAUD_THREAT,  FRAUD_TRANSACTIONS,  OPERATIONS_CLOUD,  CLOUD_SPEND,  TIMESERIES_ANOMALY_DETECTION,  OPERATIONS_MAINTENANCE,  OPERATIONS_INCIDENT,  PERS_PROMOTIONS,  PREDICTING,  FEATURE_STORE,  RETAIL,  SALES_FORECASTING,  SALES_SCORING,  FEED_RECOMMEND,  USER_RANKINGS,  NAMED_ENTITY_RECOGNITION,  USER_ITEM_AFFINITY,  USER_RECOMMENDATIONS,  USER_RELATED,  VISION,  VISION_OBJECT_DETECTION,  FEATURE_DRIFT,  SCHEDULING,  GENERIC_FORECASTING,  PRETRAINED_IMAGE_TEXT_DESCRIPTION,  PRETRAINED_SPEECH_RECOGNITION,  PRETRAINED_STYLE_TRANSFER,  PRETRAINED_TEXT_TO_IMAGE_GENERATION,  THEME_ANALYSIS.
      :type use_case: str

      :returns: This object represents the newly created project. For details, refer to.
      :rtype: Project


   .. py:method:: rename_project(project_id, name)

      This method renames a project after it is created.

      :param project_id: The unique identifier for the project.
      :type project_id: str
      :param name: The new name for the project.
      :type name: str


   .. py:method:: delete_project(project_id)

      Delete a specified project from your organization.

      This method deletes the project, its associated trained models, and deployments. The datasets attached to the specified project remain available for use with other projects in the organization.

      This method will not delete a project that contains active deployments. Ensure that all active deployments are stopped before using the delete option.

      Note: All projects, models, and deployments cannot be recovered once they are deleted.


      :param project_id: The unique ID of the project to delete.
      :type project_id: str


   .. py:method:: add_feature_group_to_project(feature_group_id, project_id, feature_group_type = 'CUSTOM_TABLE')

      Adds a feature group to a project.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param feature_group_type: The feature group type of the feature group, based on the use case under which the feature group is being created.
      :type feature_group_type: str


   .. py:method:: set_project_feature_group_config(feature_group_id, project_id, project_config = None)

      Sets a feature group's project config

      :param feature_group_id: Unique string identifier for the feature group.
      :type feature_group_id: str
      :param project_id: Unique string identifier for the project.
      :type project_id: str
      :param project_config: JSON object for the feature group's project configuration.
      :type project_config: dict


   .. py:method:: remove_feature_group_from_project(feature_group_id, project_id)

      Removes a feature group from a project.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param project_id: The unique ID associated with the project.
      :type project_id: str


   .. py:method:: set_feature_group_type(feature_group_id, project_id, feature_group_type = 'CUSTOM_TABLE')

      Update the feature group type in a project. The feature group must already be added to the project.

      :param feature_group_id: Unique identifier associated with the feature group.
      :type feature_group_id: str
      :param project_id: Unique identifier associated with the project.
      :type project_id: str
      :param feature_group_type: The feature group type to set the feature group as.
      :type feature_group_type: str


   .. py:method:: use_feature_group_for_training(feature_group_id, project_id, use_for_training = True)

      Use the feature group for model training input

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param project_id: Unique string identifier associated with the project.
      :type project_id: str
      :param use_for_training: Boolean variable to include or exclude a feature group from a model's training. Only one feature group per type can be used for training.
      :type use_for_training: bool


   .. py:method:: set_feature_mapping(project_id, feature_group_id, feature_name, feature_mapping, nested_column_name = None)

      Set a column's feature mapping. If the column mapping is single-use and already set in another column in this feature group, this call will first remove the other column's mapping and move it to this column.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param feature_name: The name of the feature.
      :type feature_name: str
      :param feature_mapping: The mapping of the feature in the feature group.
      :type feature_mapping: str
      :param nested_column_name: The name of the nested column if the input feature is part of a nested feature group for the given feature_group_id.
      :type nested_column_name: str

      :returns: A list of objects that describes the resulting feature group's schema after the feature's featureMapping is set.
      :rtype: Feature


   .. py:method:: set_column_data_type(project_id, dataset_id, column, data_type)

      Set the data type of a dataset's column.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param column: The name of the column.
      :type column: str
      :param data_type: The type of data in the column. Refer to the [guide on feature types](FEATURE_TYPES_URL) for more information. Note: Some ColumnMappings will restrict the options or explicitly set the DataType. Possible values:  CATEGORICAL,  CATEGORICAL_LIST,  NUMERICAL,  TIMESTAMP,  TEXT,  EMAIL,  LABEL_LIST,  JSON,  OBJECT_REFERENCE,  MULTICATEGORICAL_LIST,  COORDINATE_LIST,  NUMERICAL_LIST,  TIMESTAMP_LIST
      :type data_type: str

      :returns: A list of objects that describes the resulting dataset's schema after the column's data type is set.
      :rtype: Schema


   .. py:method:: set_column_mapping(project_id, dataset_id, column, column_mapping)

      Set a dataset's column mapping. If the column mapping is single-use and already set in another column in this dataset, this call will first remove the other column's mapping and move it to this column.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param column: The name of the column.
      :type column: str
      :param column_mapping: The mapping of the column in the dataset. See a list of column mapping enums here.
      :type column_mapping: str

      :returns: A list of columns that describes the resulting dataset's schema after the column's columnMapping is set.
      :rtype: Schema


   .. py:method:: remove_column_mapping(project_id, dataset_id, column)

      Removes a column mapping from a column in the dataset. Returns a list of all columns with their mappings once the change is made.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param column: The name of the column.
      :type column: str

      :returns: A list of objects that describes the resulting dataset's schema after the column's columnMapping is set.
      :rtype: Schema


   .. py:method:: add_annotation(annotation, feature_group_id, feature_name, doc_id = None, feature_group_row_identifier = None, annotation_source = 'ui', document = None, status = None)

      Add an annotation entry to the database.

      :param annotation: The annotation to add. Format of the annotation is determined by its annotation type.
      :type annotation: dict
      :param feature_group_id: The ID of the feature group the annotation is on.
      :type feature_group_id: str
      :param feature_name: The name of the feature the annotation is on.
      :type feature_name: str
      :param doc_id: The ID of the primary document the annotation is on.
      :type doc_id: str
      :param feature_group_row_identifier: The key value of the feature group row the annotation is on (cast to string). Usually the feature group primary key value.
      :type feature_group_row_identifier: str
      :param annotation_source: Indicator of whether the annotation came from the UI, bulk upload, etc.
      :type annotation_source: str
      :param document: The document the annotation is on. This is optional.
      :type document: str
      :param status: The status of the annotation. Can be one of 'todo', 'in_progress', 'done'. This is optional.
      :type status: str

      :returns: The annotation entry that was added.
      :rtype: AnnotationEntry


   .. py:method:: describe_annotation(feature_group_id, feature_name = None, doc_id = None, feature_group_row_identifier = None)

      Get the latest annotation entry for a given feature group, feature, and document.

      :param feature_group_id: The ID of the feature group the annotation is on.
      :type feature_group_id: str
      :param feature_name: The name of the feature the annotation is on.
      :type feature_name: str
      :param doc_id: The ID of the primary document the annotation is on.
      :type doc_id: str
      :param feature_group_row_identifier: The key value of the feature group row the annotation is on (cast to string). Usually the primary key value. At least one of the doc_id or key value must be provided in order to identify the correct annotation.
      :type feature_group_row_identifier: str

      :returns: The latest annotation entry for the given feature group, feature, document, and/or annotation key value.
      :rtype: AnnotationEntry


   .. py:method:: get_document_to_annotate(feature_group_id, feature_name, feature_group_row_identifier = None, get_previous = False)

      Get an available document that needs to be annotated for a given feature group and feature.

      :param feature_group_id: The ID of the feature group the annotation is on.
      :type feature_group_id: str
      :param feature_name: The name of the feature the annotation is on.
      :type feature_name: str
      :param feature_group_row_identifier: The key value of the feature group row the annotation is on (cast to string). Usually the primary key value. If provided, fetch the immediate next (or previous) available document.
      :type feature_group_row_identifier: str
      :param get_previous: If True, get the previous document instead of the next document. Applicable if feature_group_row_identifier is provided.
      :type get_previous: bool

      :returns: The latest annotation entry for the given feature group, feature, document, and/or annotation key value.
      :rtype: AnnotationEntry


   .. py:method:: create_feature_group(table_name, sql, description = None)

      Creates a new FeatureGroup from a SQL statement.

      :param table_name: The unique name to be given to the FeatureGroup.
      :type table_name: str
      :param sql: Input SQL statement for forming the FeatureGroup.
      :type sql: str
      :param description: The description about the FeatureGroup.
      :type description: str

      :returns: The created FeatureGroup.
      :rtype: FeatureGroup


   .. py:method:: create_feature_group_from_template(table_name, feature_group_template_id, template_bindings = None, should_attach_feature_group_to_template = True, description = None)

      Creates a new feature group from a SQL statement.

      :param table_name: The unique name to be given to the feature group.
      :type table_name: str
      :param feature_group_template_id: The unique ID associated with the template that will be used to create this feature group.
      :type feature_group_template_id: str
      :param template_bindings: Variable bindings that override the template's variable values.
      :type template_bindings: list
      :param should_attach_feature_group_to_template: Set to `False` to create a feature group but not leave it attached to the template that created it.
      :type should_attach_feature_group_to_template: bool
      :param description: A user-friendly description of this feature group.
      :type description: str

      :returns: The created feature group.
      :rtype: FeatureGroup


   .. py:method:: create_feature_group_from_function(table_name, function_source_code = None, function_name = None, input_feature_groups = None, description = None, cpu_size = None, memory = None, package_requirements = None, use_original_csv_names = False, python_function_name = None, python_function_bindings = None)

      Creates a new feature in a Feature Group from user-provided code. Currently supported code languages are Python.

      If a list of input feature groups are supplied, we will provide DataFrames (pandas, in the case of Python) with the materialized feature groups for those input feature groups as arguments to the function.

      This method expects the source code to be a valid language source file containing a function. This function needs to return a DataFrame when executed; this DataFrame will be used as the materialized version of this feature group table.


      :param table_name: The unique name to be given to the feature group.
      :type table_name: str
      :param function_source_code: Contents of a valid source code file in a supported Feature Group specification language (currently only Python). The source code should contain a function called function_name. A list of allowed import and system libraries for each language is specified in the user functions documentation section.
      :type function_source_code: str
      :param function_name: Name of the function found in the source code that will be executed (on the optional inputs) to materialize this feature group.
      :type function_name: str
      :param input_feature_groups: List of feature groups that are supplied to the function as parameters. Each of the parameters are materialized Dataframes (same type as the functions return value).
      :type input_feature_groups: list
      :param description: The description for this feature group.
      :type description: str
      :param cpu_size: Size of the CPU for the feature group function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the feature group function.
      :type memory: int
      :param package_requirements: List of package requirements for the feature group function. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: list
      :param use_original_csv_names: Defaults to False, if set it uses the original column names for input feature groups from CSV datasets.
      :type use_original_csv_names: bool
      :param python_function_name: Name of Python Function that contains the source code and function arguments.
      :type python_function_name: str
      :param python_function_bindings: List of arguments to be supplied to the function as parameters in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type python_function_bindings: list

      :returns: The created feature group
      :rtype: FeatureGroup


   .. py:method:: create_sampling_feature_group(feature_group_id, table_name, sampling_config, description = None)

      Creates a new Feature Group defined as a sample of rows from another Feature Group.

      For efficiency, sampling is approximate unless otherwise specified. (e.g. the number of rows may vary slightly from what was requested).


      :param feature_group_id: The unique ID associated with the pre-existing Feature Group that will be sampled by this new Feature Group. i.e. the input for sampling.
      :type feature_group_id: str
      :param table_name: The unique name to be given to this sampling Feature Group.
      :type table_name: str
      :param sampling_config: Dictionary defining the sampling method and its parameters.
      :type sampling_config: SamplingConfig
      :param description: A human-readable description of this Feature Group.
      :type description: str

      :returns: The created Feature Group.
      :rtype: FeatureGroup


   .. py:method:: create_merge_feature_group(source_feature_group_id, table_name, merge_config, description = None)

      Creates a new feature group defined as the union of other feature group versions.

              Args:
                  source_feature_group_id (str): Unique string identifier corresponding to the dataset feature group that will have its versions merged into this feature group.
                  table_name (str): Unique string identifier to be given to this merge feature group.
                  merge_config (dict): JSON object defining the merging method and its parameters.
                  description (str): Human-readable description of this feature group.

              Returns:
                  FeatureGroup: The created feature group.
      Description:
      Creates a new feature group defined as the union of other feature group versions.


   .. py:method:: create_transform_feature_group(source_feature_group_id, table_name, transform_config, description = None)

      Creates a new Feature Group defined by a pre-defined transform applied to another Feature Group.

      :param source_feature_group_id: Unique string identifier corresponding to the Feature Group to which the transformation will be applied.
      :type source_feature_group_id: str
      :param table_name: Unique string identifier for the transform Feature Group.
      :type table_name: str
      :param transform_config: JSON object (aka map) defining the transform and its parameters.
      :type transform_config: dict
      :param description: Human-readable description of the Feature Group.
      :type description: str

      :returns: The created Feature Group.
      :rtype: FeatureGroup


   .. py:method:: create_snapshot_feature_group(feature_group_version, table_name)

      Creates a Snapshot Feature Group corresponding to a specific Feature Group version.

      :param feature_group_version: Unique string identifier associated with the Feature Group version being snapshotted.
      :type feature_group_version: str
      :param table_name: Name for the newly created Snapshot Feature Group table.
      :type table_name: str

      :returns: Feature Group corresponding to the newly created Snapshot.
      :rtype: FeatureGroup


   .. py:method:: set_feature_group_sampling_config(feature_group_id, sampling_config)

      Set a FeatureGroup’s sampling to the config values provided, so that the rows the FeatureGroup returns will be a sample of those it would otherwise have returned.

      :param feature_group_id: The unique identifier associated with the FeatureGroup.
      :type feature_group_id: str
      :param sampling_config: A JSON string object specifying the sampling method and parameters specific to that sampling method. An empty sampling_config indicates no sampling.
      :type sampling_config: SamplingConfig

      :returns: The updated FeatureGroup.
      :rtype: FeatureGroup


   .. py:method:: set_feature_group_merge_config(feature_group_id, merge_config)

      Set a MergeFeatureGroup’s merge config to the values provided, so that the feature group only returns a bounded range of an incremental dataset.

      :param feature_group_id: Unique identifier associated with the feature group.
      :type feature_group_id: str
      :param merge_config: JSON object string specifying the merge rule. An empty merge_config will default to only including the latest dataset version.
      :type merge_config: dict


   .. py:method:: set_feature_group_transform_config(feature_group_id, transform_config)

      Set a TransformFeatureGroup’s transform config to the values provided.

      :param feature_group_id: A unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param transform_config: A dictionary object specifying the pre-defined transformation.
      :type transform_config: dict


   .. py:method:: set_feature_group_schema(feature_group_id, schema)

      Creates a new schema and points the feature group to the new feature group schema ID.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param schema: JSON string containing an array of objects with 'name' and 'dataType' properties.
      :type schema: list


   .. py:method:: create_feature(feature_group_id, name, select_expression)

      Creates a new feature in a Feature Group from a SQL select statement.

      :param feature_group_id: The unique ID associated with the Feature Group.
      :type feature_group_id: str
      :param name: The name of the feature to add.
      :type name: str
      :param select_expression: SQL SELECT expression to create the feature.
      :type select_expression: str

      :returns: A Feature Group object with the newly added feature.
      :rtype: FeatureGroup


   .. py:method:: add_feature_group_tag(feature_group_id, tag)

      Adds a tag to the feature group

      :param feature_group_id: Unique identifier of the feature group.
      :type feature_group_id: str
      :param tag: The tag to add to the feature group.
      :type tag: str


   .. py:method:: remove_feature_group_tag(feature_group_id, tag)

      Removes a tag from the specified feature group.

      :param feature_group_id: Unique string identifier of the feature group.
      :type feature_group_id: str
      :param tag: The tag to remove from the feature group.
      :type tag: str


   .. py:method:: add_annotatable_feature(feature_group_id, name, annotation_type)

      Add an annotatable feature in a Feature Group

      :param feature_group_id: The unique string identifier for the feature group.
      :type feature_group_id: str
      :param name: The name of the feature to add.
      :type name: str
      :param annotation_type: The type of annotation to set.
      :type annotation_type: str

      :returns: The feature group after the feature has been set
      :rtype: FeatureGroup


   .. py:method:: set_feature_as_annotatable_feature(feature_group_id, feature_name, annotation_type, feature_group_row_identifier_feature = None, doc_id_feature = None)

      Sets an existing feature as an annotatable feature (Feature that can be annotated).

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param feature_name: The name of the feature to set as annotatable.
      :type feature_name: str
      :param annotation_type: The type of annotation label to add.
      :type annotation_type: str
      :param feature_group_row_identifier_feature: The key value of the feature group row the annotation is on (cast to string) and uniquely identifies the feature group row. At least one of the doc_id or key value must be provided so that the correct annotation can be identified.
      :type feature_group_row_identifier_feature: str
      :param doc_id_feature: The name of the document ID feature.
      :type doc_id_feature: str

      :returns: A feature group object with the newly added annotatable feature.
      :rtype: FeatureGroup


   .. py:method:: unset_feature_as_annotatable_feature(feature_group_id, feature_name)

      Unsets a feature as annotatable

      :param feature_group_id: The unique string identifier of the feature group.
      :type feature_group_id: str
      :param feature_name: The name of the feature to unset.
      :type feature_name: str

      :returns: The feature group after unsetting the feature
      :rtype: FeatureGroup


   .. py:method:: add_feature_group_annotation_label(feature_group_id, label_name, annotation_type, label_definition = None)

      Adds an annotation label

      :param feature_group_id: The unique string identifier of the feature group.
      :type feature_group_id: str
      :param label_name: The name of the label.
      :type label_name: str
      :param annotation_type: The type of the annotation to set.
      :type annotation_type: str
      :param label_definition: the definition of the label.
      :type label_definition: str

      :returns: The feature group after adding the annotation label
      :rtype: FeatureGroup


   .. py:method:: remove_feature_group_annotation_label(feature_group_id, label_name)

      Removes an annotation label

      :param feature_group_id: The unique string identifier of the feature group.
      :type feature_group_id: str
      :param label_name: The name of the label to remove.
      :type label_name: str

      :returns: The feature group after adding the annotation label
      :rtype: FeatureGroup


   .. py:method:: add_feature_tag(feature_group_id, feature, tag)

      Adds a tag on a feature

      :param feature_group_id: The unique string identifier of the feature group.
      :type feature_group_id: str
      :param feature: The feature to set the tag on.
      :type feature: str
      :param tag: The tag to set on the feature.
      :type tag: str


   .. py:method:: remove_feature_tag(feature_group_id, feature, tag)

      Removes a tag from a feature

      :param feature_group_id: The unique string identifier of the feature group.
      :type feature_group_id: str
      :param feature: The feature to remove the tag from.
      :type feature: str
      :param tag: The tag to remove.
      :type tag: str


   .. py:method:: create_nested_feature(feature_group_id, nested_feature_name, table_name, using_clause, where_clause = None, order_clause = None)

      Creates a new nested feature in a feature group from a SQL statement.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param nested_feature_name: The name of the feature.
      :type nested_feature_name: str
      :param table_name: The table name of the feature group to nest.
      :type table_name: str
      :param using_clause: The SQL join column or logic to join the nested table with the parent.
      :type using_clause: str
      :param where_clause: A SQL WHERE statement to filter the nested rows.
      :type where_clause: str
      :param order_clause: A SQL clause to order the nested rows.
      :type order_clause: str

      :returns: A feature group object with the newly added nested feature.
      :rtype: FeatureGroup


   .. py:method:: update_nested_feature(feature_group_id, nested_feature_name, table_name = None, using_clause = None, where_clause = None, order_clause = None, new_nested_feature_name = None)

      Updates a previously existing nested feature in a feature group.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param nested_feature_name: The name of the feature to be updated.
      :type nested_feature_name: str
      :param table_name: The name of the table.
      :type table_name: str
      :param using_clause: The SQL join column or logic to join the nested table with the parent.
      :type using_clause: str
      :param where_clause: An SQL WHERE statement to filter the nested rows.
      :type where_clause: str
      :param order_clause: An SQL clause to order the nested rows.
      :type order_clause: str
      :param new_nested_feature_name: New name for the nested feature.
      :type new_nested_feature_name: str

      :returns: A feature group object with the updated nested feature.
      :rtype: FeatureGroup


   .. py:method:: delete_nested_feature(feature_group_id, nested_feature_name)

      Delete a nested feature.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param nested_feature_name: The name of the feature to be deleted.
      :type nested_feature_name: str

      :returns: A feature group object without the specified nested feature.
      :rtype: FeatureGroup


   .. py:method:: create_point_in_time_feature(feature_group_id, feature_name, history_table_name, aggregation_keys, timestamp_key, historical_timestamp_key, expression, lookback_window_seconds = None, lookback_window_lag_seconds = 0, lookback_count = None, lookback_until_position = 0)

      Creates a new point in time feature in a feature group using another historical feature group, window spec, and aggregate expression.

      We use the aggregation keys and either the lookbackWindowSeconds or the lookbackCount values to perform the window aggregation for every row in the current feature group.

      If the window is specified in seconds, then all rows in the history table which match the aggregation keys and with historicalTimeFeature greater than or equal to lookbackStartCount and less than the value of the current rows timeFeature are considered. An optional lookbackWindowLagSeconds (+ve or -ve) can be used to offset the current value of the timeFeature. If this value is negative, we will look at the future rows in the history table, so care must be taken to ensure that these rows are available in the online context when we are performing a lookup on this feature group. If the window is specified in counts, then we order the historical table rows aligning by time and consider rows from the window where the rank order is greater than or equal to lookbackCount and includes the row just prior to the current one. The lag is specified in terms of positions using lookbackUntilPosition.


      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param feature_name: The name of the feature to create.
      :type feature_name: str
      :param history_table_name: The table name of the history table.
      :type history_table_name: str
      :param aggregation_keys: List of keys to use for joining the historical table and performing the window aggregation.
      :type aggregation_keys: list
      :param timestamp_key: Name of feature which contains the timestamp value for the point in time feature.
      :type timestamp_key: str
      :param historical_timestamp_key: Name of feature which contains the historical timestamp.
      :type historical_timestamp_key: str
      :param expression: SQL aggregate expression which can convert a sequence of rows into a scalar value.
      :type expression: str
      :param lookback_window_seconds: If window is specified in terms of time, number of seconds in the past from the current time for start of the window.
      :type lookback_window_seconds: float
      :param lookback_window_lag_seconds: Optional lag to offset the closest point for the window. If it is positive, we delay the start of window. If it is negative, we are looking at the "future" rows in the history table.
      :type lookback_window_lag_seconds: float
      :param lookback_count: If window is specified in terms of count, the start position of the window (0 is the current row).
      :type lookback_count: int
      :param lookback_until_position: Optional lag to offset the closest point for the window. If it is positive, we delay the start of window by that many rows. If it is negative, we are looking at those many "future" rows in the history table.
      :type lookback_until_position: int

      :returns: A feature group object with the newly added nested feature.
      :rtype: FeatureGroup


   .. py:method:: update_point_in_time_feature(feature_group_id, feature_name, history_table_name = None, aggregation_keys = None, timestamp_key = None, historical_timestamp_key = None, expression = None, lookback_window_seconds = None, lookback_window_lag_seconds = None, lookback_count = None, lookback_until_position = None, new_feature_name = None)

      Updates an existing Point-in-Time (PiT) feature in a feature group. See `createPointInTimeFeature` for detailed semantics.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param feature_name: The name of the feature.
      :type feature_name: str
      :param history_table_name: The table name of the history table. If not specified, we use the current table to do a self join.
      :type history_table_name: str
      :param aggregation_keys: List of keys to use for joining the historical table and performing the window aggregation.
      :type aggregation_keys: list
      :param timestamp_key: Name of the feature which contains the timestamp value for the PiT feature.
      :type timestamp_key: str
      :param historical_timestamp_key: Name of the feature which contains the historical timestamp.
      :type historical_timestamp_key: str
      :param expression: SQL Aggregate expression which can convert a sequence of rows into a scalar value.
      :type expression: str
      :param lookback_window_seconds: If the window is specified in terms of time, the number of seconds in the past from the current time for the start of the window.
      :type lookback_window_seconds: float
      :param lookback_window_lag_seconds: Optional lag to offset the closest point for the window. If it is positive, we delay the start of the window. If it is negative, we are looking at the "future" rows in the history table.
      :type lookback_window_lag_seconds: float
      :param lookback_count: If the window is specified in terms of count, the start position of the window (0 is the current row).
      :type lookback_count: int
      :param lookback_until_position: Optional lag to offset the closest point for the window. If it is positive, we delay the start of the window by that many rows. If it is negative, we are looking at those many "future" rows in the history table.
      :type lookback_until_position: int
      :param new_feature_name: New name for the PiT feature.
      :type new_feature_name: str

      :returns: A feature group object with the newly added nested feature.
      :rtype: FeatureGroup


   .. py:method:: create_point_in_time_group(feature_group_id, group_name, window_key, aggregation_keys, history_table_name = None, history_window_key = None, history_aggregation_keys = None, lookback_window = None, lookback_window_lag = 0, lookback_count = None, lookback_until_position = 0)

      Create a Point-in-Time Group

      :param feature_group_id: The unique ID associated with the feature group to add the point in time group to.
      :type feature_group_id: str
      :param group_name: The name of the point in time group.
      :type group_name: str
      :param window_key: Name of feature to use for ordering the rows on the source table.
      :type window_key: str
      :param aggregation_keys: List of keys to perform on the source table for the window aggregation.
      :type aggregation_keys: list
      :param history_table_name: The table to use for aggregating, if not provided, the source table will be used.
      :type history_table_name: str
      :param history_window_key: Name of feature to use for ordering the rows on the history table. If not provided, the windowKey from the source table will be used.
      :type history_window_key: str
      :param history_aggregation_keys: List of keys to use for join the historical table and performing the window aggregation. If not provided, the aggregationKeys from the source table will be used. Must be the same length and order as the source table's aggregationKeys.
      :type history_aggregation_keys: list
      :param lookback_window: Number of seconds in the past from the current time for the start of the window. If 0, the lookback will include all rows.
      :type lookback_window: float
      :param lookback_window_lag: Optional lag to offset the closest point for the window. If it is positive, the start of the window is delayed. If it is negative, "future" rows in the history table are used.
      :type lookback_window_lag: float
      :param lookback_count: If window is specified in terms of count, the start position of the window (0 is the current row).
      :type lookback_count: int
      :param lookback_until_position: Optional lag to offset the closest point for the window. If it is positive, the start of the window is delayed by that many rows. If it is negative, those many "future" rows in the history table are used.
      :type lookback_until_position: int

      :returns: The feature group after the point in time group has been created.
      :rtype: FeatureGroup


   .. py:method:: update_point_in_time_group(feature_group_id, group_name, window_key = None, aggregation_keys = None, history_table_name = None, history_window_key = None, history_aggregation_keys = None, lookback_window = None, lookback_window_lag = None, lookback_count = None, lookback_until_position = None)

      Update Point-in-Time Group

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param group_name: The name of the point-in-time group.
      :type group_name: str
      :param window_key: Name of feature which contains the timestamp value for the point-in-time feature.
      :type window_key: str
      :param aggregation_keys: List of keys to use for joining the historical table and performing the window aggregation.
      :type aggregation_keys: list
      :param history_table_name: The table to use for aggregating, if not provided, the source table will be used.
      :type history_table_name: str
      :param history_window_key: Name of feature to use for ordering the rows on the history table. If not provided, the windowKey from the source table will be used.
      :type history_window_key: str
      :param history_aggregation_keys: List of keys to use for joining the historical table and performing the window aggregation. If not provided, the aggregationKeys from the source table will be used. Must be the same length and order as the source table's aggregationKeys.
      :type history_aggregation_keys: list
      :param lookback_window: Number of seconds in the past from the current time for the start of the window.
      :type lookback_window: float
      :param lookback_window_lag: Optional lag to offset the closest point for the window. If it is positive, the start of the window is delayed. If it is negative, future rows in the history table are looked at.
      :type lookback_window_lag: float
      :param lookback_count: If window is specified in terms of count, the start position of the window (0 is the current row).
      :type lookback_count: int
      :param lookback_until_position: Optional lag to offset the closest point for the window. If it is positive, the start of the window is delayed by that many rows. If it is negative, those many future rows in the history table are looked at.
      :type lookback_until_position: int

      :returns: The feature group after the update has been applied.
      :rtype: FeatureGroup


   .. py:method:: delete_point_in_time_group(feature_group_id, group_name)

      Delete point in time group

      :param feature_group_id: The unique identifier associated with the feature group.
      :type feature_group_id: str
      :param group_name: The name of the point in time group.
      :type group_name: str

      :returns: The feature group after the point in time group has been deleted.
      :rtype: FeatureGroup


   .. py:method:: create_point_in_time_group_feature(feature_group_id, group_name, name, expression)

      Create point in time group feature

      :param feature_group_id: A unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param group_name: The name of the point-in-time group.
      :type group_name: str
      :param name: The name of the feature to add to the point-in-time group.
      :type name: str
      :param expression: A SQL aggregate expression which can convert a sequence of rows into a scalar value.
      :type expression: str

      :returns: The feature group after the update has been applied.
      :rtype: FeatureGroup


   .. py:method:: update_point_in_time_group_feature(feature_group_id, group_name, name, expression)

      Update a feature's SQL expression in a point in time group

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param group_name: The name of the point-in-time group.
      :type group_name: str
      :param name: The name of the feature to add to the point-in-time group.
      :type name: str
      :param expression: SQL aggregate expression which can convert a sequence of rows into a scalar value.
      :type expression: str

      :returns: The feature group after the update has been applied.
      :rtype: FeatureGroup


   .. py:method:: set_feature_type(feature_group_id, feature, feature_type)

      Set the type of a feature in a feature group. Specify the feature group ID, feature name, and feature type, and the method will return the new column with the changes reflected.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param feature: The name of the feature.
      :type feature: str
      :param feature_type: The machine learning type of the data in the feature. Refer to the [guide on feature types](https://api.abacus.ai/app/help/class/FeatureType) for more information.
      :type feature_type: str

      :returns: The feature group after the data_type is applied.
      :rtype: Schema


   .. py:method:: invalidate_streaming_feature_group_data(feature_group_id, invalid_before_timestamp)

      Invalidates all streaming data with timestamp before invalidBeforeTimestamp

      :param feature_group_id: Unique string identifier of the streaming feature group to record data to
      :type feature_group_id: str
      :param invalid_before_timestamp: Unix timestamp; any data with a timestamp before this time will be invalidated
      :type invalid_before_timestamp: int


   .. py:method:: concatenate_feature_group_data(feature_group_id, source_feature_group_id, merge_type = 'UNION', replace_until_timestamp = None, skip_materialize = False)

      Concatenates data from one Feature Group to another. Feature Groups can be merged if their schemas are compatible, they have the special `updateTimestampKey` column, and (if set) the `primaryKey` column. The second operand in the concatenate operation will be appended to the first operand (merge target).

      :param feature_group_id: The destination Feature Group.
      :type feature_group_id: str
      :param source_feature_group_id: The Feature Group to concatenate with the destination Feature Group.
      :type source_feature_group_id: str
      :param merge_type: `UNION` or `INTERSECTION`.
      :type merge_type: str
      :param replace_until_timestamp: The UNIX timestamp to specify the point until which we will replace data from the source Feature Group.
      :type replace_until_timestamp: int
      :param skip_materialize: If `True`, will not materialize the concatenated Feature Group.
      :type skip_materialize: bool


   .. py:method:: remove_concatenation_config(feature_group_id)

      Removes the concatenation config on a destination feature group.

      :param feature_group_id: Unique identifier of the destination feature group to remove the concatenation configuration from.
      :type feature_group_id: str


   .. py:method:: set_feature_group_indexing_config(feature_group_id, primary_key = None, update_timestamp_key = None, lookup_keys = None)

      Sets various attributes of the feature group used for deployment lookups and streaming updates.

      :param feature_group_id: Unique string identifier for the feature group.
      :type feature_group_id: str
      :param primary_key: Name of the feature which defines the primary key of the feature group.
      :type primary_key: str
      :param update_timestamp_key: Name of the feature which defines the update timestamp of the feature group. Used in concatenation and primary key deduplication.
      :type update_timestamp_key: str
      :param lookup_keys: List of feature names which can be used in the lookup API to restrict the computation to a set of dataset rows. These feature names have to correspond to underlying dataset columns.
      :type lookup_keys: list


   .. py:method:: update_feature_group(feature_group_id, description = None)

      Modify an existing Feature Group.

      :param feature_group_id: Unique identifier associated with the Feature Group.
      :type feature_group_id: str
      :param description: Description of the Feature Group.
      :type description: str

      :returns: Updated Feature Group object.
      :rtype: FeatureGroup


   .. py:method:: detach_feature_group_from_template(feature_group_id)

      Update a feature group to detach it from a template.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str

      :returns: The updated feature group.
      :rtype: FeatureGroup


   .. py:method:: update_feature_group_template_bindings(feature_group_id, template_bindings = None)

      Update the feature group template bindings for a template feature group.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param template_bindings: Values in these bindings override values set in the template.
      :type template_bindings: list

      :returns: Updated feature group.
      :rtype: FeatureGroup


   .. py:method:: update_feature_group_python_function_bindings(feature_group_id, python_function_bindings)

      Updates an existing Feature Group's Python function bindings from a user-provided Python Function. If a list of feature groups are supplied within the Python function bindings, we will provide DataFrames (Pandas in the case of Python) with the materialized feature groups for those input feature groups as arguments to the function.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param python_function_bindings: List of arguments to be supplied to the function as parameters in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type python_function_bindings: list


   .. py:method:: update_feature_group_python_function(feature_group_id, python_function_name, python_function_bindings = [])

      Updates an existing Feature Group's python function from a user provided Python Function. If a list of feature groups are supplied within the python function

      bindings, we will provide as arguments to the function DataFrame's (pandas in the case of Python) with the materialized
      feature groups for those input feature groups.


      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param python_function_name: The name of the python function to be associated with the feature group.
      :type python_function_name: str
      :param python_function_bindings: List of arguments to be supplied to the function as parameters in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type python_function_bindings: list


   .. py:method:: update_feature_group_sql_definition(feature_group_id, sql)

      Updates the SQL statement for a feature group.

      :param feature_group_id: The unique identifier associated with the feature group.
      :type feature_group_id: str
      :param sql: The input SQL statement for the feature group.
      :type sql: str

      :returns: The updated feature group.
      :rtype: FeatureGroup


   .. py:method:: update_dataset_feature_group_feature_expression(feature_group_id, feature_expression)

      Updates the SQL feature expression for a Dataset FeatureGroup's custom features

      :param feature_group_id: The unique identifier associated with the feature group.
      :type feature_group_id: str
      :param feature_expression: The input SQL statement for the feature group.
      :type feature_expression: str

      :returns: The updated feature group.
      :rtype: FeatureGroup


   .. py:method:: update_feature_group_function_definition(feature_group_id, function_source_code = None, function_name = None, input_feature_groups = None, cpu_size = None, memory = None, package_requirements = None, use_original_csv_names = False, python_function_bindings = None)

      Updates the function definition for a feature group

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param function_source_code: Contents of a valid source code file in a supported Feature Group specification language (currently only Python). The source code should contain a function called `function_name`. A list of allowed import and system libraries for each language is specified in the user functions documentation section.
      :type function_source_code: str
      :param function_name: Name of the function found in the source code that will be executed (on the optional inputs) to materialize this feature group.
      :type function_name: str
      :param input_feature_groups: List of feature groups that are supplied to the function as parameters. Each of the parameters are materialized DataFrames (same type as the functions return value).
      :type input_feature_groups: list
      :param cpu_size: Size of the CPU for the feature group function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the feature group function.
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list
      :param use_original_csv_names: If set to `True`, feature group uses the original column names for input feature groups from CSV datasets.
      :type use_original_csv_names: bool
      :param python_function_bindings: List of arguments to be supplied to the function as parameters in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type python_function_bindings: list

      :returns: The updated feature group.
      :rtype: FeatureGroup


   .. py:method:: update_feature_group_zip(feature_group_id, function_name, module_name, input_feature_groups = None, cpu_size = None, memory = None, package_requirements = None)

      Updates the ZIP file for a feature group created using `createFeatureGroupFromZip`.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param function_name: The name of the function found in the source code that will be executed (on the optional inputs) to materialize this feature group.
      :type function_name: str
      :param module_name: The path to the file with the feature group function.
      :type module_name: str
      :param input_feature_groups: A list of feature groups that are supplied to the function as parameters. Each of the parameters are materialized Dataframes (same type as the functions return value).
      :type input_feature_groups: list
      :param cpu_size: The size of the CPU for the feature group function.
      :type cpu_size: str
      :param memory: The memory (in GB) for the feature group function.
      :type memory: int
      :param package_requirements: A list of package requirement strings. For example: `['numpy==1.2.3', 'pandas>=1.4.0']`.
      :type package_requirements: list

      :returns: The Upload to upload the ZIP file to.
      :rtype: Upload


   .. py:method:: update_feature_group_git(feature_group_id, application_connector_id = None, branch_name = None, python_root = None, function_name = None, module_name = None, input_feature_groups = None, cpu_size = None, memory = None, package_requirements = None)

      Updates a feature group created using `createFeatureGroupFromGit`.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param application_connector_id: Unique string identifier associated with the git application connector.
      :type application_connector_id: str
      :param branch_name: Name of the branch in the git repository to be used for training.
      :type branch_name: str
      :param python_root: Path from the top level of the git repository to the directory containing the Python source code. If not provided, the default is the root of the git repository.
      :type python_root: str
      :param function_name: Name of the function found in the source code that will be executed (on the optional inputs) to materialize this feature group.
      :type function_name: str
      :param module_name: Path to the file with the feature group function.
      :type module_name: str
      :param input_feature_groups: List of feature groups that are supplied to the function as parameters. Each of the parameters are materialized Dataframes (same type as the functions return value).
      :type input_feature_groups: list
      :param cpu_size: Size of the cpu for the feature group function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the feature group function.
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list

      :returns: The updated FeatureGroup.
      :rtype: FeatureGroup


   .. py:method:: update_feature(feature_group_id, name, select_expression = None, new_name = None)

      Modifies an existing feature in a feature group.

      :param feature_group_id: Unique identifier of the feature group.
      :type feature_group_id: str
      :param name: Name of the feature to be updated.
      :type name: str
      :param select_expression: SQL statement for modifying the feature.
      :type select_expression: str
      :param new_name: New name of the feature.
      :type new_name: str

      :returns: Updated feature group object.
      :rtype: FeatureGroup


   .. py:method:: export_feature_group_version_to_file_connector(feature_group_version, location, export_file_format, overwrite = False)

      Export Feature group to File Connector.

      :param feature_group_version: Unique string identifier for the feature group instance to export.
      :type feature_group_version: str
      :param location: Cloud file location to export to.
      :type location: str
      :param export_file_format: Enum string specifying the file format to export to.
      :type export_file_format: str
      :param overwrite: If true and a file exists at this location, this process will overwrite the file.
      :type overwrite: bool

      :returns: The FeatureGroupExport instance.
      :rtype: FeatureGroupExport


   .. py:method:: export_feature_group_version_to_database_connector(feature_group_version, database_connector_id, object_name, write_mode, database_feature_mapping, id_column = None, additional_id_columns = None)

      Export Feature group to Database Connector.

      :param feature_group_version: Unique string identifier for the Feature Group instance to export.
      :type feature_group_version: str
      :param database_connector_id: Unique string identifier for the Database Connector to export to.
      :type database_connector_id: str
      :param object_name: Name of the database object to write to.
      :type object_name: str
      :param write_mode: Enum string indicating whether to use INSERT or UPSERT.
      :type write_mode: str
      :param database_feature_mapping: Key/value pair JSON object of "database connector column" -> "feature name" pairs.
      :type database_feature_mapping: dict
      :param id_column: Required if write_mode is UPSERT. Indicates which database column should be used as the lookup key.
      :type id_column: str
      :param additional_id_columns: For database connectors which support it, additional ID columns to use as a complex key for upserting.
      :type additional_id_columns: list

      :returns: The FeatureGroupExport instance.
      :rtype: FeatureGroupExport


   .. py:method:: export_feature_group_version_to_console(feature_group_version, export_file_format)

      Export Feature group to console.

      :param feature_group_version: Unique string identifier of the Feature Group instance to export.
      :type feature_group_version: str
      :param export_file_format: File format to export to.
      :type export_file_format: str

      :returns: The FeatureGroupExport instance.
      :rtype: FeatureGroupExport


   .. py:method:: set_feature_group_modifier_lock(feature_group_id, locked = True)

      Lock a feature group to prevent modification.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param locked: Whether to disable or enable feature group modification (True or False).
      :type locked: bool


   .. py:method:: add_user_to_feature_group_modifiers(feature_group_id, email)

      Adds a user to a feature group.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param email: The email address of the user to be added.
      :type email: str


   .. py:method:: add_organization_group_to_feature_group_modifiers(feature_group_id, organization_group_id)

      Add OrganizationGroup to a feature group modifiers list

      :param feature_group_id: Unique string identifier of the feature group.
      :type feature_group_id: str
      :param organization_group_id: Unique string identifier of the organization group.
      :type organization_group_id: str


   .. py:method:: remove_user_from_feature_group_modifiers(feature_group_id, email)

      Removes a user from a specified feature group.

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param email: The email address of the user to be removed.
      :type email: str


   .. py:method:: remove_organization_group_from_feature_group_modifiers(feature_group_id, organization_group_id)

      Removes an OrganizationGroup from a feature group modifiers list

      :param feature_group_id: The unique ID associated with the feature group.
      :type feature_group_id: str
      :param organization_group_id: The unique ID associated with the organization group.
      :type organization_group_id: str


   .. py:method:: delete_feature(feature_group_id, name)

      Removes a feature from the feature group.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param name: Name of the feature to be deleted.
      :type name: str

      :returns: Updated feature group object.
      :rtype: FeatureGroup


   .. py:method:: delete_feature_group(feature_group_id)

      Deletes a Feature Group.

      :param feature_group_id: Unique string identifier for the feature group to be removed.
      :type feature_group_id: str


   .. py:method:: create_feature_group_version(feature_group_id, variable_bindings = None)

      Creates a snapshot for a specified feature group.

      :param feature_group_id: Unique string identifier associated with the feature group.
      :type feature_group_id: str
      :param variable_bindings: Dictionary defining variable bindings that override parent feature group values.
      :type variable_bindings: dict

      :returns: A feature group version.
      :rtype: FeatureGroupVersion


   .. py:method:: create_feature_group_template(feature_group_id, name, template_sql, template_variables, description = None, template_bindings = None, should_attach_feature_group_to_template = False)

      Create a feature group template.

      :param feature_group_id: Unique identifier of the feature group this template was created from.
      :type feature_group_id: str
      :param name: User-friendly name for this feature group template.
      :type name: str
      :param template_sql: The template SQL that will be resolved by applying values from the template variables to generate SQL for a feature group.
      :type template_sql: str
      :param template_variables: The template variables for resolving the template.
      :type template_variables: list
      :param description: Description of this feature group template.
      :type description: str
      :param template_bindings: If the feature group will be attached to the newly created template, set these variable bindings on that feature group.
      :type template_bindings: list
      :param should_attach_feature_group_to_template: Set to `True` to convert the feature group to a template feature group and attach it to the newly created template.
      :type should_attach_feature_group_to_template: bool

      :returns: The created feature group template.
      :rtype: FeatureGroupTemplate


   .. py:method:: delete_feature_group_template(feature_group_template_id)

      Delete an existing feature group template.

      :param feature_group_template_id: Unique string identifier associated with the feature group template.
      :type feature_group_template_id: str


   .. py:method:: update_feature_group_template(feature_group_template_id, template_sql = None, template_variables = None, description = None, name = None)

      Update a feature group template.

      :param feature_group_template_id: Unique identifier of the feature group template to update.
      :type feature_group_template_id: str
      :param template_sql: If provided, the new value to use for the template SQL.
      :type template_sql: str
      :param template_variables: If provided, the new value to use for the template variables.
      :type template_variables: list
      :param description: Description of this feature group template.
      :type description: str
      :param name: User-friendly name for this feature group template.
      :type name: str

      :returns: The updated feature group template.
      :rtype: FeatureGroupTemplate


   .. py:method:: preview_feature_group_template_resolution(feature_group_template_id = None, template_bindings = None, template_sql = None, template_variables = None, should_validate = True)

      Resolve template sql using template variables and template bindings.

      :param feature_group_template_id: Unique string identifier. If specified, use this template, otherwise assume an empty template.
      :type feature_group_template_id: str
      :param template_bindings: Values to override the template variable values specified by the template.
      :type template_bindings: list
      :param template_sql: If specified, use this as the template SQL instead of the feature group template's SQL.
      :type template_sql: str
      :param template_variables: Template variables to use. If a template is provided, this overrides the template's template variables.
      :type template_variables: list
      :param should_validate: If true, validates the resolved SQL.
      :type should_validate: bool

      :returns: The resolved template
      :rtype: ResolvedFeatureGroupTemplate


   .. py:method:: cancel_upload(upload_id)

      Cancels an upload.

      :param upload_id: A unique string identifier for the upload.
      :type upload_id: str


   .. py:method:: upload_part(upload_id, part_number, part_data)

      Uploads part of a large dataset file from your bucket to our system. Our system currently supports parts of up to 5GB and full files of up to 5TB. Note that each part must be at least 5MB in size, unless it is the last part in the sequence of parts for the full file.

      :param upload_id: A unique identifier for this upload.
      :type upload_id: str
      :param part_number: The 1-indexed number denoting the position of the file part in the sequence of parts for the full file.
      :type part_number: int
      :param part_data: The multipart/form-data for the current part of the full file.
      :type part_data: io.TextIOBase

      :returns: The object 'UploadPart' which encapsulates the hash and the etag for the part that got uploaded.
      :rtype: UploadPart


   .. py:method:: mark_upload_complete(upload_id)

      Marks an upload process as complete.

      :param upload_id: A unique string identifier for the upload process.
      :type upload_id: str

      :returns: The upload object associated with the process, containing details of the file.
      :rtype: Upload


   .. py:method:: create_dataset_from_file_connector(table_name, location, file_format = None, refresh_schedule = None, csv_delimiter = None, filename_column = None, start_prefix = None, until_prefix = None, location_date_format = None, date_format_lookback_days = None, incremental = False, is_documentset = False, merge_file_schemas = False)

      Creates a dataset from a file located in a cloud storage, such as Amazon AWS S3, using the specified dataset name and location.

      :param table_name: Organization-unique table name or the name of the feature group table to create using the source table.
      :type table_name: str
      :param location: The URI location format of the dataset source. The URI location format needs to be specified to match the `location_date_format` when `location_date_format` is specified. For example, Location = s3://bucket1/dir1/dir2/event_date=YYYY-MM-DD/* when `location_date_format` is specified. The URI location format needs to include both the `start_prefix` and `until_prefix` when both are specified. For example, Location s3://bucket1/dir1/* includes both s3://bucket1/dir1/dir2/event_date=2021-08-02/* and s3://bucket1/dir1/dir2/event_date=2021-08-08/*
      :type location: str
      :param file_format: The file format of the dataset.
      :type file_format: str
      :param refresh_schedule: The Cron time string format that describes a schedule to retrieve the latest version of the imported dataset. The time is specified in UTC.
      :type refresh_schedule: str
      :param csv_delimiter: If the file format is CSV, use a specific csv delimiter.
      :type csv_delimiter: str
      :param filename_column: Adds a new column to the dataset with the external URI path.
      :type filename_column: str
      :param start_prefix: The start prefix (inclusive) for a range based search on a cloud storage location URI.
      :type start_prefix: str
      :param until_prefix: The end prefix (exclusive) for a range based search on a cloud storage location URI.
      :type until_prefix: str
      :param location_date_format: The date format in which the data is partitioned in the cloud storage location. For example, if the data is partitioned as s3://bucket1/dir1/dir2/event_date=YYYY-MM-DD/dir4/filename.parquet, then the `location_date_format` is YYYY-MM-DD. This format needs to be consistent across all files within the specified location.
      :type location_date_format: str
      :param date_format_lookback_days: The number of days to look back from the current day for import locations that are date partitioned. For example, import date 2021-06-04 with `date_format_lookback_days` = 3 will retrieve data for all the dates in the range [2021-06-02, 2021-06-04].
      :type date_format_lookback_days: int
      :param incremental: Signifies if the dataset is an incremental dataset.
      :type incremental: bool
      :param is_documentset: Signifies if the dataset is docstore dataset.
      :type is_documentset: bool
      :param merge_file_schemas: Signifies if the merge file schema policy is enabled.
      :type merge_file_schemas: bool

      :returns: The dataset created.
      :rtype: Dataset


   .. py:method:: create_dataset_version_from_file_connector(dataset_id, location = None, file_format = None, csv_delimiter = None, merge_file_schemas = None)

      Creates a new version of the specified dataset.

      :param dataset_id: Unique string identifier associated with the dataset.
      :type dataset_id: str
      :param location: External URI to import the dataset from. If not specified, the last location will be used.
      :type location: str
      :param file_format: File format to be used. If not specified, the service will try to detect the file format.
      :type file_format: str
      :param csv_delimiter: If the file format is CSV, use a specific CSV delimiter.
      :type csv_delimiter: str
      :param merge_file_schemas: Signifies if the merge file schema policy is enabled.
      :type merge_file_schemas: bool

      :returns: The new Dataset Version created.
      :rtype: DatasetVersion


   .. py:method:: create_dataset_from_database_connector(table_name, database_connector_id, object_name = None, columns = None, query_arguments = None, refresh_schedule = None, sql_query = None, incremental = False, timestamp_column = None)

      Creates a dataset from a Database Connector.

      :param table_name: Organization-unique table name.
      :type table_name: str
      :param database_connector_id: Unique String Identifier of the Database Connector to import the dataset from.
      :type database_connector_id: str
      :param object_name: If applicable, the name/ID of the object in the service to query.
      :type object_name: str
      :param columns: The columns to query from the external service object.
      :type columns: str
      :param query_arguments: Additional query arguments to filter the data.
      :type query_arguments: str
      :param refresh_schedule: The Cron time string format that describes a schedule to retrieve the latest version of the imported dataset. The time is specified in UTC.
      :type refresh_schedule: str
      :param sql_query: The full SQL query to use when fetching data. If present, this parameter will override `object_name`, `columns`, `timestamp_column`, and `query_arguments`.
      :type sql_query: str
      :param incremental: Signifies if the dataset is an incremental dataset.
      :type incremental: bool
      :param timestamp_column: If dataset is incremental, this is the column name of the required column in the dataset. This column must contain timestamps in descending order which are used to determine the increments of the incremental dataset.
      :type timestamp_column: str

      :returns: The created dataset.
      :rtype: Dataset


   .. py:method:: create_dataset_from_application_connector(table_name, application_connector_id, object_id = None, start_timestamp = None, end_timestamp = None, refresh_schedule = None)

      Creates a dataset from an Application Connector.

      :param table_name: Organization-unique table name
      :type table_name: str
      :param application_connector_id: Unique string identifier of the application connector to download data from
      :type application_connector_id: str
      :param object_id: If applicable, the ID of the object in the service to query.
      :type object_id: str
      :param start_timestamp: Unix timestamp of the start of the period that will be queried.
      :type start_timestamp: int
      :param end_timestamp: Unix timestamp of the end of the period that will be queried.
      :type end_timestamp: int
      :param refresh_schedule: Cron time string format that describes a schedule to retrieve the latest version of the imported dataset. The time is specified in UTC.
      :type refresh_schedule: str

      :returns: The created dataset.
      :rtype: Dataset


   .. py:method:: create_dataset_version_from_database_connector(dataset_id, object_name = None, columns = None, query_arguments = None, sql_query = None)

      Creates a new version of the specified dataset.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param object_name: The name/ID of the object in the service to query. If not specified, the last name will be used.
      :type object_name: str
      :param columns: The columns to query from the external service object. If not specified, the last columns will be used.
      :type columns: str
      :param query_arguments: Additional query arguments to filter the data. If not specified, the last arguments will be used.
      :type query_arguments: str
      :param sql_query: The full SQL query to use when fetching data. If present, this parameter will override object_name, columns, and query_arguments.
      :type sql_query: str

      :returns: The new Dataset Version created.
      :rtype: DatasetVersion


   .. py:method:: create_dataset_version_from_application_connector(dataset_id, object_id = None, start_timestamp = None, end_timestamp = None)

      Creates a new version of the specified dataset.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param object_id: The ID of the object in the service to query. If not specified, the last name will be used.
      :type object_id: str
      :param start_timestamp: The Unix timestamp of the start of the period that will be queried.
      :type start_timestamp: int
      :param end_timestamp: The Unix timestamp of the end of the period that will be queried.
      :type end_timestamp: int

      :returns: The new Dataset Version created.
      :rtype: DatasetVersion


   .. py:method:: create_dataset_from_upload(table_name, file_format = None, csv_delimiter = None, is_documentset = False)

      Creates a dataset and returns an upload ID that can be used to upload a file.

      :param table_name: Organization-unique table name for this dataset.
      :type table_name: str
      :param file_format: The file format of the dataset.
      :type file_format: str
      :param csv_delimiter: If the file format is CSV, use a specific CSV delimiter.
      :type csv_delimiter: str
      :param is_documentset: Signifies if the dataset is a docstore dataset.
      :type is_documentset: bool

      :returns: A reference to be used when uploading file parts.
      :rtype: Upload


   .. py:method:: create_dataset_version_from_upload(dataset_id, file_format = None)

      Creates a new version of the specified dataset using a local file upload.

      :param dataset_id: Unique string identifier associated with the dataset.
      :type dataset_id: str
      :param file_format: File format to be used. If not specified, the service will attempt to detect the file format.
      :type file_format: str

      :returns: Token to be used when uploading file parts.
      :rtype: Upload


   .. py:method:: create_streaming_dataset(table_name)

      Creates a streaming dataset. Use a streaming dataset if your dataset is receiving information from multiple sources over an extended period of time.

      :param table_name: The feature group table name to create for this dataset.
      :type table_name: str

      :returns: The streaming dataset created.
      :rtype: Dataset


   .. py:method:: snapshot_streaming_data(dataset_id)

      Snapshots the current data in the streaming dataset.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str

      :returns: The new Dataset Version created by taking a snapshot of the current data in the streaming dataset.
      :rtype: DatasetVersion


   .. py:method:: set_dataset_column_data_type(dataset_id, column, data_type)

      Set a Dataset's column type.

      :param dataset_id: The unique ID associated with the dataset.
      :type dataset_id: str
      :param column: The name of the column.
      :type column: str
      :param data_type: The type of the data in the column. Refer to the [guide on data types](https://api.abacus.ai/app/help/class/DataType) for more information. Note: Some ColumnMappings may restrict the options or explicitly set the DataType.
      :type data_type: str

      :returns: The dataset and schema after the data type has been set.
      :rtype: Dataset


   .. py:method:: create_dataset_from_streaming_connector(table_name, streaming_connector_id, streaming_args = None, refresh_schedule = None)

      Creates a dataset from a Streaming Connector

      :param table_name: Organization-unique table name
      :type table_name: str
      :param streaming_connector_id: Unique String Identifier for the Streaming Connector to import the dataset from
      :type streaming_connector_id: str
      :param streaming_args: Dictionary of arguments to read data from the streaming connector
      :type streaming_args: dict
      :param refresh_schedule: Cron time string format that describes a schedule to retrieve the latest version of the imported dataset. Time is specified in UTC.
      :type refresh_schedule: str

      :returns: The created dataset.
      :rtype: Dataset


   .. py:method:: set_streaming_retention_policy(dataset_id, retention_hours = None, retention_row_count = None, ignore_records_before_timestamp = None)

      Sets the streaming retention policy.

      :param dataset_id: Unique string identifier for the streaming dataset.
      :type dataset_id: str
      :param retention_hours: Number of hours to retain streamed data in memory.
      :type retention_hours: int
      :param retention_row_count: Number of rows to retain streamed data in memory.
      :type retention_row_count: int
      :param ignore_records_before_timestamp: The Unix timestamp (in seconds) to use as a cutoff to ignore all entries sent before it
      :type ignore_records_before_timestamp: int


   .. py:method:: rename_database_connector(database_connector_id, name)

      Renames a Database Connector

      :param database_connector_id: The unique identifier for the database connector.
      :type database_connector_id: str
      :param name: The new name for the Database Connector.
      :type name: str


   .. py:method:: rename_application_connector(application_connector_id, name)

      Renames a Application Connector

      :param application_connector_id: The unique identifier for the application connector.
      :type application_connector_id: str
      :param name: A new name for the application connector.
      :type name: str


   .. py:method:: verify_database_connector(database_connector_id)

      Checks if Abacus.AI can access the specified database.

      :param database_connector_id: Unique string identifier for the database connector.
      :type database_connector_id: str


   .. py:method:: verify_file_connector(bucket)

      Checks to see if Abacus.AI can access the given bucket.

      :param bucket: The bucket to test.
      :type bucket: str

      :returns: The result of the verification.
      :rtype: FileConnectorVerification


   .. py:method:: delete_database_connector(database_connector_id)

      Delete a database connector.

      :param database_connector_id: The unique identifier for the database connector.
      :type database_connector_id: str


   .. py:method:: delete_application_connector(application_connector_id)

      Delete an application connector.

      :param application_connector_id: The unique identifier for the application connector.
      :type application_connector_id: str


   .. py:method:: delete_file_connector(bucket)

      Deletes a file connector

      :param bucket: The fully qualified URI of the bucket to remove.
      :type bucket: str


   .. py:method:: verify_application_connector(application_connector_id)

      Checks if Abacus.AI can access the application using the provided application connector ID.

      :param application_connector_id: Unique string identifier for the application connector.
      :type application_connector_id: str


   .. py:method:: set_azure_blob_connection_string(bucket, connection_string)

      Authenticates the specified Azure Blob Storage bucket using an authenticated Connection String.

      :param bucket: The fully qualified Azure Blob Storage Bucket URI.
      :type bucket: str
      :param connection_string: The Connection String {product_name} should use to authenticate when accessing this bucket.
      :type connection_string: str

      :returns: An object with the roleArn and verification status for the specified bucket.
      :rtype: FileConnectorVerification


   .. py:method:: verify_streaming_connector(streaming_connector_id)

      Checks to see if Abacus.AI can access the streaming connector.

      :param streaming_connector_id: Unique string identifier for the streaming connector to be checked for Abacus.AI access.
      :type streaming_connector_id: str


   .. py:method:: rename_streaming_connector(streaming_connector_id, name)

      Renames a Streaming Connector

      :param streaming_connector_id: The unique identifier for the streaming connector.
      :type streaming_connector_id: str
      :param name: A new name for the streaming connector.
      :type name: str


   .. py:method:: delete_streaming_connector(streaming_connector_id)

      Delete a streaming connector.

      :param streaming_connector_id: The unique identifier for the streaming connector.
      :type streaming_connector_id: str


   .. py:method:: create_streaming_token()

      Creates a streaming token for the specified project. Streaming tokens are used to authenticate requests when appending data to streaming datasets.

      :returns: The generated streaming token.
      :rtype: StreamingAuthToken


   .. py:method:: delete_streaming_token(streaming_token)

      Deletes the specified streaming token.

      :param streaming_token: The streaming token to delete.
      :type streaming_token: str


   .. py:method:: attach_dataset_to_project(dataset_id, project_id, dataset_type)

      [DEPRECATED] Attach a dataset to the project.

      Use this method to attach a dataset that is already in the organization to another project. The dataset type is required to let the AI engine know what type of schema should be used.


      :param dataset_id: Unique identifier of the dataset to attach.
      :type dataset_id: str
      :param project_id: Unique identifier of the project to attach the dataset to.
      :type project_id: str
      :param dataset_type: Enum string representing the dataset type, associated with the use case of the project. Refer to the [Use Case Documentation](https://api.abacus.ai/app/help/useCases) for the supported dataset types per use case.
      :type dataset_type: str

      :returns: An array of column descriptions.
      :rtype: Schema


   .. py:method:: remove_dataset_from_project(dataset_id, project_id)

      [DEPRECATED] Removes the dataset with the specified dataset from the project.

      :param dataset_id: Unique string identifier of the dataset.
      :type dataset_id: str
      :param project_id: Unique string identifier of the project.
      :type project_id: str


   .. py:method:: delete_dataset(dataset_id)

      Deletes the specified dataset from the organization.

      :param dataset_id: Unique string identifier of the dataset to delete.
      :type dataset_id: str


   .. py:method:: get_training_config_options(project_id, feature_group_ids = None, for_retrain = False, current_training_config = None)

      Retrieves the full initial description of the model training configuration options available for the specified project. The configuration options available are determined by the use case associated with the specified project. Refer to the [Use Case Documentation]({USE_CASES_URL}) for more information on use cases and use case-specific configuration options.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param feature_group_ids: The feature group IDs to be used for training.
      :type feature_group_ids: list
      :param for_retrain: Whether the training config options are used for retraining.
      :type for_retrain: bool
      :param current_training_config: The current state of the training config, with some options set, which shall be used to get new options after refresh. This is `None` by default initially.
      :type current_training_config: dict

      :returns: An array of options that can be specified when training a model in this project.
      :rtype: TrainingConfigOptions


   .. py:method:: create_train_test_data_split_feature_group(project_id, training_config, feature_group_ids)

      Get the train and test data split without training the model. Only supported for models with custom algorithms.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param training_config: The training config key/value pairs used to influence how the split is calculated.
      :type training_config: dict
      :param feature_group_ids: List of feature group IDs provided by the user, including the required one for data split and others to influence how to split.
      :type feature_group_ids: list

      :returns: The feature group containing the training data and folds information.
      :rtype: FeatureGroup


   .. py:method:: train_model(project_id, name = None, training_config = None, feature_group_ids = None, refresh_schedule = None, custom_algorithms = None, custom_algorithms_only = False, custom_algorithm_configs = None, builtin_algorithms = None, cpu_size = None, memory = None)

      Train a model for the specified project.

      This method trains a model in the given project, using user-specified training configurations defined in the `getTrainingConfigOptions` method.


      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param name: The name of the model. Defaults to "<Project Name> Model".
      :type name: str
      :param training_config: The training config key/value pairs used to train this model.
      :type training_config: dict
      :param feature_group_ids: List of feature group IDs provided by the user to train the model on.
      :type feature_group_ids: list
      :param refresh_schedule: A cron-style string that describes a schedule in UTC to automatically retrain the created model.
      :type refresh_schedule: str
      :param custom_algorithms: List of user-defined algorithms to train. If not set, the default enabled custom algorithms will be used.
      :type custom_algorithms: list
      :param custom_algorithms_only: Whether to only run custom algorithms.
      :type custom_algorithms_only: bool
      :param custom_algorithm_configs: Configs for each user-defined algorithm; key is the algorithm name, value is the config serialized to JSON.
      :type custom_algorithm_configs: dict
      :param builtin_algorithms: List of IDs of the builtin algorithms provided by Abacus.AI to train. If not set, all applicable builtin algorithms will be used.
      :type builtin_algorithms: list
      :param cpu_size: Size of the CPU for the user-defined algorithms during training.
      :type cpu_size: str
      :param memory: Memory (in GB) for the user-defined algorithms during training.
      :type memory: int

      :returns: The new model which is being trained.
      :rtype: Model


   .. py:method:: create_model_from_python(project_id, function_source_code, train_function_name, training_input_tables, predict_function_name = None, predict_many_function_name = None, initialize_function_name = None, name = None, cpu_size = None, memory = None, training_config = None, exclusive_run = False, package_requirements = None, use_gpu = False)

      Initializes a new Model from user-provided Python code. If a list of input feature groups is supplied, they will be provided as arguments to the train and predict functions with the materialized feature groups for those input feature groups.

      This method expects `functionSourceCode` to be a valid language source file which contains the functions named `trainFunctionName` and `predictFunctionName`. `trainFunctionName` returns the ModelVersion that is the result of training the model using `trainFunctionName` and `predictFunctionName` has no well-defined return type, as it returns the prediction made by the `predictFunctionName`, which can be anything.


      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param function_source_code: Contents of a valid Python source code file. The source code should contain the functions named `trainFunctionName` and `predictFunctionName`. A list of allowed import and system libraries for each language is specified in the user functions documentation section.
      :type function_source_code: str
      :param train_function_name: Name of the function found in the source code that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param training_input_tables: List of feature groups that are supplied to the train function as parameters. Each of the parameters are materialized Dataframes (same type as the functions return value).
      :type training_input_tables: list
      :param predict_function_name: Name of the function found in the source code that will be executed to run predictions through the model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the source code that will be executed for batch prediction of the model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param initialize_function_name: Name of the function found in the source code to initialize the trained model before using it to make predictions using the model
      :type initialize_function_name: str
      :param name: The name you want your model to have. Defaults to "<Project Name> Model"
      :type name: str
      :param cpu_size: Size of the CPU for the model training function
      :type cpu_size: str
      :param memory: Memory (in GB) for the model training function
      :type memory: int
      :param training_config: Training configuration
      :type training_config: dict
      :param exclusive_run: Decides if this model will be run exclusively or along with other Abacus.ai algorithms
      :type exclusive_run: bool
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0']
      :type package_requirements: list
      :param use_gpu: Whether this model needs gpu
      :type use_gpu: bool

      :returns: The new model, which has not been trained.
      :rtype: Model


   .. py:method:: rename_model(model_id, name)

      Renames a model

      :param model_id: Unique identifier of the model to rename.
      :type model_id: str
      :param name: The new name to assign to the model.
      :type name: str


   .. py:method:: update_python_model(model_id, function_source_code = None, train_function_name = None, predict_function_name = None, predict_many_function_name = None, initialize_function_name = None, training_input_tables = None, cpu_size = None, memory = None, package_requirements = None, use_gpu = None)

      Updates an existing Python Model using user-provided Python code. If a list of input feature groups is supplied, they will be provided as arguments to the `train` and `predict` functions with the materialized feature groups for those input feature groups.

      This method expects `functionSourceCode` to be a valid language source file which contains the functions named `trainFunctionName` and `predictFunctionName`. `trainFunctionName` returns the ModelVersion that is the result of training the model using `trainFunctionName`. `predictFunctionName` has no well-defined return type, as it returns the prediction made by the `predictFunctionName`, which can be anything.


      :param model_id: The unique ID associated with the Python model to be changed.
      :type model_id: str
      :param function_source_code: Contents of a valid Python source code file. The source code should contain the functions named `trainFunctionName` and `predictFunctionName`. A list of allowed import and system libraries for each language is specified in the user functions documentation section.
      :type function_source_code: str
      :param train_function_name: Name of the function found in the source code that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param predict_function_name: Name of the function found in the source code that will be executed to run predictions through the model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the source code that will be executed to run batch predictions through the model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param initialize_function_name: Name of the function found in the source code to initialize the trained model before using it to make predictions using the model.
      :type initialize_function_name: str
      :param training_input_tables: List of feature groups that are supplied to the `train` function as parameters. Each of the parameters are materialized DataFrames (same type as the functions return value).
      :type training_input_tables: list
      :param cpu_size: Size of the CPU for the model training function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the model training function.
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: `['numpy==1.2.3', 'pandas>=1.4.0']`.
      :type package_requirements: list
      :param use_gpu: Whether this model needs gpu
      :type use_gpu: bool

      :returns: The updated model.
      :rtype: Model


   .. py:method:: update_python_model_zip(model_id, train_function_name = None, predict_function_name = None, predict_many_function_name = None, train_module_name = None, predict_module_name = None, training_input_tables = None, cpu_size = None, memory = None, package_requirements = None, use_gpu = None)

      Updates an existing Python Model using a provided zip file. If a list of input feature groups are supplied, they will be provided as arguments to the train and predict functions with the materialized feature groups for those input feature groups.

      This method expects `trainModuleName` and `predictModuleName` to be valid language source files which contain the functions named `trainFunctionName` and `predictFunctionName`, respectively. `trainFunctionName` returns the ModelVersion that is the result of training the model using `trainFunctionName`, and `predictFunctionName` has no well-defined return type, as it returns the prediction made by the `predictFunctionName`, which can be anything.


      :param model_id: The unique ID associated with the Python model to be changed.
      :type model_id: str
      :param train_function_name: Name of the function found in the train module that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param predict_function_name: Name of the function found in the predict module that will be executed to run predictions through the model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the predict module that will be executed to run batch predictions through the model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param train_module_name: Full path of the module that contains the train function from the root of the zip.
      :type train_module_name: str
      :param predict_module_name: Full path of the module that contains the predict function from the root of the zip.
      :type predict_module_name: str
      :param training_input_tables: List of feature groups that are supplied to the train function as parameters. Each of the parameters are materialized Dataframes (same type as the function's return value).
      :type training_input_tables: list
      :param cpu_size: Size of the CPU for the model training function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the model training function.
      :type memory: int
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list
      :param use_gpu: Whether this model needs gpu
      :type use_gpu: bool

      :returns: The updated model.
      :rtype: Upload


   .. py:method:: update_python_model_git(model_id, application_connector_id = None, branch_name = None, python_root = None, train_function_name = None, predict_function_name = None, predict_many_function_name = None, train_module_name = None, predict_module_name = None, training_input_tables = None, cpu_size = None, memory = None, use_gpu = None)

      Updates an existing Python model using an existing Git application connector. If a list of input feature groups are supplied, these will be provided as arguments to the train and predict functions with the materialized feature groups for those input feature groups.

      This method expects `trainModuleName` and `predictModuleName` to be valid language source files which contain the functions named `trainFunctionName` and `predictFunctionName`, respectively. `trainFunctionName` returns the `ModelVersion` that is the result of training the model using `trainFunctionName`, and `predictFunctionName` has no well-defined return type, as it returns the prediction made by the `predictFunctionName`, which can be anything.


      :param model_id: The unique ID associated with the Python model to be changed.
      :type model_id: str
      :param application_connector_id: The unique ID associated with the Git application connector.
      :type application_connector_id: str
      :param branch_name: Name of the branch in the Git repository to be used for training.
      :type branch_name: str
      :param python_root: Path from the top level of the Git repository to the directory containing the Python source code. If not provided, the default is the root of the Git repository.
      :type python_root: str
      :param train_function_name: Name of the function found in train module that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param predict_function_name: Name of the function found in the predict module that will be executed to run predictions through model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the predict module that will be executed to run batch predictions through model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param train_module_name: Full path of the module that contains the train function from the root of the zip.
      :type train_module_name: str
      :param predict_module_name: Full path of the module that contains the predict function from the root of the zip.
      :type predict_module_name: str
      :param training_input_tables: List of feature groups that are supplied to the train function as parameters. Each of the parameters are materialized Dataframes (same type as the functions return value).
      :type training_input_tables: list
      :param cpu_size: Size of the CPU for the model training function.
      :type cpu_size: str
      :param memory: Memory (in GB) for the model training function.
      :type memory: int
      :param use_gpu: Whether this model needs gpu
      :type use_gpu: bool

      :returns: The updated model.
      :rtype: Model


   .. py:method:: set_model_training_config(model_id, training_config, feature_group_ids = None)

      Edits the default model training config

      :param model_id: A unique string identifier of the model to update.
      :type model_id: str
      :param training_config: A dictionary of key-value pairs used to train the model.
      :type training_config: dict
      :param feature_group_ids: The list of feature groups used as input to the model.
      :type feature_group_ids: list

      :returns: The model object corresponding to the updated training config.
      :rtype: Model


   .. py:method:: set_model_prediction_params(model_id, prediction_config)

      Sets the model prediction config for the model

      :param model_id: Unique string identifier of the model to update.
      :type model_id: str
      :param prediction_config: Prediction configuration for the model.
      :type prediction_config: dict

      :returns: Model object after the prediction configuration is applied.
      :rtype: Model


   .. py:method:: retrain_model(model_id, deployment_ids = None, feature_group_ids = None, custom_algorithms = None, builtin_algorithms = None, custom_algorithm_configs = None, cpu_size = None, memory = None, training_config = None)

      Retrains the specified model, with an option to choose the deployments to which the retraining will be deployed.

      :param model_id: Unique string identifier of the model to retrain.
      :type model_id: str
      :param deployment_ids: List of unique string identifiers of deployments to automatically deploy to.
      :type deployment_ids: list
      :param feature_group_ids: List of feature group IDs provided by the user to train the model on.
      :type feature_group_ids: list
      :param custom_algorithms: List of user-defined algorithms to train. If not set, will honor the runs from the last time and applicable new custom algorithms.
      :type custom_algorithms: list
      :param builtin_algorithms: List of the built-in algorithms provided by Abacus.AI to train. If not set, will honor the runs from the last time and applicable new built-in algorithms.
      :type builtin_algorithms: list
      :param custom_algorithm_configs: User-defined training configs for each custom algorithm.
      :type custom_algorithm_configs: dict
      :param cpu_size: Size of the CPU for the user-defined algorithms during training.
      :type cpu_size: str
      :param memory: Memory (in GB) for the user-defined algorithms during training.
      :type memory: int
      :param training_config: Training config key/value pairs used to train the model.
      :type training_config: dict

      :returns: The model that is being retrained.
      :rtype: Model


   .. py:method:: delete_model(model_id)

      Deletes the specified model and all its versions. Models which are currently used in deployments cannot be deleted.

      :param model_id: Unique string identifier of the model to delete.
      :type model_id: str


   .. py:method:: delete_model_version(model_version)

      Deletes the specified model version. Model versions which are currently used in deployments cannot be deleted.

      :param model_version: The unique identifier of the model version to delete.
      :type model_version: str


   .. py:method:: export_model_artifact_as_feature_group(model_version, table_name, artifact_type)

      Exports metric artifact data for a model as a feature group.

      :param model_version: Unique string identifier for the version of the model.
      :type model_version: str
      :param table_name: Name of the feature group table to create.
      :type table_name: str
      :param artifact_type: EvalArtifact enum specifying which artifact to export.
      :type artifact_type: str

      :returns: The created feature group.
      :rtype: FeatureGroup


   .. py:method:: get_custom_train_function_info(project_id, feature_group_names_for_training = None, training_data_parameter_name_override = None, training_config = None, custom_algorithm_config = None)

      Returns information about how to call the custom train function.

      :param project_id: The unique version ID of the project.
      :type project_id: str
      :param feature_group_names_for_training: A list of feature group table names to be used for training.
      :type feature_group_names_for_training: list
      :param training_data_parameter_name_override: Override from feature group type to parameter name in the train function.
      :type training_data_parameter_name_override: dict
      :param training_config: Training config names and values for the options supported by the Abacus.ai platform.
      :type training_config: dict
      :param custom_algorithm_config: User-defined config that can be serialized by JSON.
      :type custom_algorithm_config: dict

      :returns: Information about how to call the customer-provided train function.
      :rtype: CustomTrainFunctionInfo


   .. py:method:: create_model_monitor(project_id, prediction_feature_group_id, training_feature_group_id = None, name = None, refresh_schedule = None, target_value = None, target_value_bias = None, target_value_performance = None, feature_mappings = None, model_id = None, training_feature_mappings = None, feature_group_base_monitor_config = None, feature_group_comparison_monitor_config = None)

      Runs a model monitor for the specified project.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param prediction_feature_group_id: The unique ID of the prediction data feature group.
      :type prediction_feature_group_id: str
      :param training_feature_group_id: The unique ID of the training data feature group.
      :type training_feature_group_id: str
      :param name: The name you want your model monitor to have. Defaults to "<Project Name> Model Monitor".
      :type name: str
      :param refresh_schedule: A cron-style string that describes a schedule in UTC to automatically retrain the created model monitor.
      :type refresh_schedule: str
      :param target_value: A target positive value for the label to compute bias and PR/AUC for performance page (old style until UI is on prod).
      :type target_value: str
      :param target_value_bias: A target positive value for the label to compute bias.
      :type target_value_bias: str
      :param target_value_performance: A target positive value for the label to compute PR curve/AUC for performance page.
      :type target_value_performance: str
      :param feature_mappings: A JSON map to override features for prediction_feature_group, where keys are column names and the values are feature data use types.
      :type feature_mappings: dict
      :param model_id: The unique ID of the model.
      :type model_id: str
      :param training_feature_mappings: A JSON map to override features for training_fature_group, where keys are column names and the values are feature data use types.
      :type training_feature_mappings: dict
      :param feature_group_base_monitor_config: Selection strategy for the feature_group 1 with the feature group version if selected.
      :type feature_group_base_monitor_config: dict
      :param feature_group_comparison_monitor_config: Selection strategy for the feature_group 1 with the feature group version if selected.
      :type feature_group_comparison_monitor_config: dict

      :returns: The new model monitor that was created.
      :rtype: ModelMonitor


   .. py:method:: rerun_model_monitor(model_monitor_id)

      Re-runs the specified model monitor.

      :param model_monitor_id: Unique string identifier of the model monitor to re-run.
      :type model_monitor_id: str

      :returns: The model monitor that is being re-run.
      :rtype: ModelMonitor


   .. py:method:: rename_model_monitor(model_monitor_id, name)

      Renames a model monitor

      :param model_monitor_id: Unique identifier of the model monitor to rename.
      :type model_monitor_id: str
      :param name: The new name to apply to the model monitor.
      :type name: str


   .. py:method:: delete_model_monitor(model_monitor_id)

      Deletes the specified Model Monitor and all its versions.

      :param model_monitor_id: Unique identifier of the Model Monitor to delete.
      :type model_monitor_id: str


   .. py:method:: delete_model_monitor_version(model_monitor_version)

      Deletes the specified model monitor version.

      :param model_monitor_version: Unique identifier of the model monitor version to delete.
      :type model_monitor_version: str


   .. py:method:: create_vision_drift_monitor(project_id, prediction_feature_group_id, training_feature_group_id, name, feature_mappings, training_feature_mappings, target_value_performance = None, refresh_schedule = None)

      Runs a vision drift monitor for the specified project.

      :param project_id: Unique string identifier of the project.
      :type project_id: str
      :param prediction_feature_group_id: Unique string identifier of the prediction data feature group.
      :type prediction_feature_group_id: str
      :param training_feature_group_id: Unique string identifier of the training data feature group.
      :type training_feature_group_id: str
      :param name: The name you want your model monitor to have. Defaults to "<Project Name> Model Monitor".
      :type name: str
      :param feature_mappings: A JSON map to override features for prediction_feature_group, where keys are column names and the values are feature data use types.
      :type feature_mappings: dict
      :param training_feature_mappings: A JSON map to override features for training_feature_group, where keys are column names and the values are feature data use types.
      :type training_feature_mappings: dict
      :param target_value_performance: A target positive value for the label to compute precision-recall curve/area under curve for performance page.
      :type target_value_performance: str
      :param refresh_schedule: A cron-style string that describes a schedule in UTC to automatically retrain the created vision drift monitor.
      :type refresh_schedule: str

      :returns: The new model monitor that was created.
      :rtype: ModelMonitor


   .. py:method:: create_eda(project_id, feature_group_id, name, refresh_schedule = None, include_collinearity = False, include_data_consistency = False, collinearity_keys = None, primary_keys = None, data_consistency_test_config = None, data_consistency_reference_config = None, feature_mappings = None, forecast_frequency = None)

      Run an Exploratory Data Analysis (EDA) for the specified project.

      :param project_id: The unique ID associated with the project.
      :type project_id: str
      :param feature_group_id: The unique ID of the prediction data feature group.
      :type feature_group_id: str
      :param name: The name you want your model monitor to have. Defaults to "<Project Name> EDA".
      :type name: str
      :param refresh_schedule: A cron-style string that describes a schedule in UTC to automatically retrain the created EDA.
      :type refresh_schedule: str
      :param include_collinearity: Set to True if the EDA type is collinearity.
      :type include_collinearity: bool
      :param include_data_consistency: Set to True if the EDA type is data consistency.
      :type include_data_consistency: bool
      :param collinearity_keys: List of features to use for collinearity
      :type collinearity_keys: list
      :param primary_keys: List of features that corresponds to the primary keys or item ids for the given feature group for Data Consistency analysis or Forecasting analysis respectively.
      :type primary_keys: list
      :param data_consistency_test_config: Test feature group version selection strategy for Data Consistency EDA type.
      :type data_consistency_test_config: dict
      :param data_consistency_reference_config: Reference feature group version selection strategy for Data Consistency EDA type.
      :type data_consistency_reference_config: dict
      :param feature_mappings: A JSON map to override features for the given feature_group, where keys are column names and the values are feature data use types. (In forecasting, used to set the timestamp column and target value)
      :type feature_mappings: dict
      :param forecast_frequency: The frequency of the data. It can be either HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY.
      :type forecast_frequency: str

      :returns: The new EDA object that was created.
      :rtype: Eda


   .. py:method:: rerun_eda(eda_id)

      Reruns the specified EDA object.

      :param eda_id: Unique string identifier of the EDA object to rerun.
      :type eda_id: str

      :returns: The EDA object that is being rerun.
      :rtype: Eda


   .. py:method:: rename_eda(eda_id, name)

      Renames an EDA

      :param eda_id: Unique string identifier of the EDA to rename.
      :type eda_id: str
      :param name: The new name to apply to the model monitor.
      :type name: str


   .. py:method:: delete_eda(eda_id)

      Deletes the specified EDA and all its versions.

      :param eda_id: Unique string identifier of the EDA to delete.
      :type eda_id: str


   .. py:method:: delete_eda_version(eda_version)

      Deletes the specified EDA version.

      :param eda_version: Unique string identifier of the EDA version to delete.
      :type eda_version: str


   .. py:method:: create_monitor_alert(project_id, model_monitor_id, alert_name, condition_config, action_config)

      Create a monitor alert for the given conditions and monitor

      :param project_id: Unique string identifier for the project.
      :type project_id: str
      :param model_monitor_id: Unique string identifier for the model monitor created under the project.
      :type model_monitor_id: str
      :param alert_name: Name of the alert.
      :type alert_name: str
      :param condition_config: Condition to run the actions for the alert.
      :type condition_config: dict
      :param action_config: Configuration for the action of the alert.
      :type action_config: dict

      :returns: Object describing the monitor alert.
      :rtype: MonitorAlert


   .. py:method:: update_monitor_alert(monitor_alert_id, alert_name = None, condition_config = None, action_config = None)

      Update monitor alert

      :param monitor_alert_id: Unique identifier of the monitor alert.
      :type monitor_alert_id: str
      :param alert_name: Name of the alert.
      :type alert_name: str
      :param condition_config: Condition to run the actions for the alert.
      :type condition_config: dict
      :param action_config: Configuration for the action of the alert.
      :type action_config: dict

      :returns: Object describing the monitor alert.
      :rtype: MonitorAlert


   .. py:method:: run_monitor_alert(monitor_alert_id)

      Reruns a given monitor alert from latest monitor instance

      :param monitor_alert_id: Unique identifier of a monitor alert.
      :type monitor_alert_id: str

      :returns: Object describing the monitor alert.
      :rtype: MonitorAlert


   .. py:method:: delete_monitor_alert(monitor_alert_id)

      Delets a monitor alert

      :param monitor_alert_id: The unique string identifier of the alert to delete.
      :type monitor_alert_id: str


   .. py:method:: create_deployment(name = None, model_id = None, model_version = None, algorithm = None, feature_group_id = None, project_id = None, description = None, calls_per_second = None, auto_deploy = True, start = True, enable_batch_streaming_updates = False, model_deployment_config = None)

      Creates a deployment with the specified name and description for the specified model or feature group.

      A Deployment makes the trained model or feature group available for prediction requests.


      :param name: The name of the deployment.
      :type name: str
      :param model_id: The unique ID associated with the model.
      :type model_id: str
      :param model_version: The unique ID associated with the model version to deploy.
      :type model_version: str
      :param algorithm: The unique ID associated with the algorithm to deploy.
      :type algorithm: str
      :param feature_group_id: The unique ID associated with a feature group.
      :type feature_group_id: str
      :param project_id: The unique ID associated with a project.
      :type project_id: str
      :param description: The description for the deployment.
      :type description: str
      :param calls_per_second: The number of calls per second the deployment can handle.
      :type calls_per_second: int
      :param auto_deploy: Flag to enable the automatic deployment when a new Model Version finishes training.
      :type auto_deploy: bool
      :param start: If true, will start the deployment; otherwise will create offline
      :type start: bool
      :param enable_batch_streaming_updates: Flag to enable marking the feature group deployment to have a background process cache streamed in rows for quicker lookup.
      :type enable_batch_streaming_updates: bool
      :param model_deployment_config: The deployment config for model to deploy
      :type model_deployment_config: dict

      :returns: The new model or feature group deployment.
      :rtype: Deployment


   .. py:method:: create_deployment_token(project_id, name = None)

      Creates a deployment token for the specified project.

      Deployment tokens are used to authenticate requests to the prediction APIs and are scoped to the project level.


      :param project_id: The unique string identifier associated with the project.
      :type project_id: str
      :param name: The name of the deployment token.
      :type name: str

      :returns: The deployment token.
      :rtype: DeploymentAuthToken


   .. py:method:: update_deployment(deployment_id, description = None)

      Updates a deployment's description.

      :param deployment_id: Unique identifier of the deployment to update.
      :type deployment_id: str
      :param description: The new description for the deployment.
      :type description: str


   .. py:method:: rename_deployment(deployment_id, name)

      Updates a deployment's name

      :param deployment_id: Unique string identifier for the deployment to update.
      :type deployment_id: str
      :param name: The new deployment name.
      :type name: str


   .. py:method:: set_auto_deployment(deployment_id, enable = None)

      Enable or disable auto deployment for the specified deployment.

      When a model is scheduled to retrain, deployments with auto deployment enabled will be marked to automatically promote the new model version. After the newly trained model completes, a check on its metrics in comparison to the currently deployed model version will be performed. If the metrics are comparable or better, the newly trained model version is automatically promoted. If not, it will be marked as a failed model version promotion with an error indicating poor metrics performance.


      :param deployment_id: The unique ID associated with the deployment.
      :type deployment_id: str
      :param enable: Enable or disable the autoDeploy property of the deployment.
      :type enable: bool


   .. py:method:: set_deployment_model_version(deployment_id, model_version, algorithm = None, model_deployment_config = None)

      Promotes a model version and/or algorithm to be the active served deployment version

      :param deployment_id: A unique identifier for the deployment.
      :type deployment_id: str
      :param model_version: A unique identifier for the model version.
      :type model_version: str
      :param algorithm: The algorithm to use for the model version. If not specified, the algorithm will be inferred from the model version.
      :type algorithm: str
      :param model_deployment_config: The deployment configuration for the model to deploy.
      :type model_deployment_config: dict


   .. py:method:: set_deployment_feature_group_version(deployment_id, feature_group_version)

      Promotes a feature group version to be served in the deployment.

      :param deployment_id: Unique string identifier for the deployment.
      :type deployment_id: str
      :param feature_group_version: Unique string identifier for the feature group version.
      :type feature_group_version: str


   .. py:method:: start_deployment(deployment_id)

      Restarts the specified deployment that was previously suspended.

      :param deployment_id: A unique string identifier associated with the deployment.
      :type deployment_id: str


   .. py:method:: stop_deployment(deployment_id)

      Stops the specified deployment.

      :param deployment_id: Unique string identifier of the deployment to be stopped.
      :type deployment_id: str


   .. py:method:: delete_deployment(deployment_id)

      Deletes the specified deployment. The deployment's models will not be affected. Note that the deployments are not recoverable after they are deleted.

      :param deployment_id: Unique string identifier of the deployment to delete.
      :type deployment_id: str


   .. py:method:: delete_deployment_token(deployment_token)

      Deletes the specified deployment token.

      :param deployment_token: The deployment token to delete.
      :type deployment_token: str


   .. py:method:: set_deployment_feature_group_export_file_connector_output(deployment_id, file_format = None, output_location = None)

      Sets the export output for the Feature Group Deployment to be a file connector.

      :param deployment_id: The ID of the deployment for which the export type is set.
      :type deployment_id: str
      :param file_format: The type of export output, either CSV or JSON.
      :type file_format: str
      :param output_location: The file connector (cloud) location where the output should be exported.
      :type output_location: str


   .. py:method:: set_deployment_feature_group_export_database_connector_output(deployment_id, database_connector_id, object_name, write_mode, database_feature_mapping, id_column = None, additional_id_columns = None)

      Sets the export output for the Feature Group Deployment to a Database connector.

      :param deployment_id: The ID of the deployment for which the export type is set.
      :type deployment_id: str
      :param database_connector_id: The unique string identifier of the database connector used.
      :type database_connector_id: str
      :param object_name: The object of the database connector to write to.
      :type object_name: str
      :param write_mode: The write mode to use when writing to the database connector, either UPSERT or INSERT.
      :type write_mode: str
      :param database_feature_mapping: The column/feature pairs mapping the features to the database columns.
      :type database_feature_mapping: dict
      :param id_column: The id column to use as the upsert key.
      :type id_column: str
      :param additional_id_columns: For database connectors which support it, a list of additional ID columns to use as a complex key for upserting.
      :type additional_id_columns: list


   .. py:method:: remove_deployment_feature_group_export_output(deployment_id)

      Removes the export type that is set for the Feature Group Deployment

      :param deployment_id: The ID of the deployment for which the export type is set.
      :type deployment_id: str


   .. py:method:: create_refresh_policy(name, cron, refresh_type, project_id = None, dataset_ids = [], model_ids = [], deployment_ids = [], batch_prediction_ids = [], prediction_metric_ids = [], model_monitor_ids = [])

      Creates a refresh policy with a particular cron pattern and refresh type.

      A refresh policy allows for the scheduling of a set of actions at regular intervals. This can be useful for periodically updating data that needs to be re-imported into the project for retraining.


      :param name: The name of the refresh policy.
      :type name: str
      :param cron: A cron-like string specifying the frequency of the refresh policy.
      :type cron: str
      :param refresh_type: The refresh type used to determine what is being refreshed, such as a single dataset, dataset and model, or more.
      :type refresh_type: str
      :param project_id: Optionally, a project ID can be specified so that all datasets, models, and deployments are captured at the instant the policy was created.
      :type project_id: str
      :param dataset_ids: Comma-separated list of dataset IDs.
      :type dataset_ids: list
      :param model_ids: Comma-separated list of model IDs.
      :type model_ids: list
      :param deployment_ids: Comma-separated list of deployment IDs.
      :type deployment_ids: list
      :param batch_prediction_ids: Comma-separated list of batch prediction IDs.
      :type batch_prediction_ids: list
      :param prediction_metric_ids: Comma-separated list of prediction metric IDs.
      :type prediction_metric_ids: list
      :param model_monitor_ids: Comma-separated list of model monitor IDs.
      :type model_monitor_ids: list

      :returns: The created refresh policy.
      :rtype: RefreshPolicy


   .. py:method:: delete_refresh_policy(refresh_policy_id)

      Delete a refresh policy.

      :param refresh_policy_id: Unique string identifier associated with the refresh policy to delete.
      :type refresh_policy_id: str


   .. py:method:: pause_refresh_policy(refresh_policy_id)

      Pauses a refresh policy

      :param refresh_policy_id: Unique identifier associated with the refresh policy to be paused.
      :type refresh_policy_id: str


   .. py:method:: resume_refresh_policy(refresh_policy_id)

      Resumes a refresh policy

      :param refresh_policy_id: The unique ID associated with this refresh policy.
      :type refresh_policy_id: str


   .. py:method:: run_refresh_policy(refresh_policy_id)

      Force a run of the refresh policy.

      :param refresh_policy_id: Unique string identifier associated with the refresh policy to be run.
      :type refresh_policy_id: str


   .. py:method:: update_refresh_policy(refresh_policy_id, name = None, cron = None)

      Update the name or cron string of a refresh policy

      :param refresh_policy_id: Unique string identifier associated with the refresh policy.
      :type refresh_policy_id: str
      :param name: Name of the refresh policy to be updated.
      :type name: str
      :param cron: Cron string describing the schedule from the refresh policy to be updated.
      :type cron: str

      :returns: Updated refresh policy.
      :rtype: RefreshPolicy


   .. py:method:: lookup_features(deployment_token, deployment_id, query_data = {}, limit_results = None, result_columns = None)

      Returns the feature group deployed in the feature store project.

      :param deployment_token: A deployment token used to authenticate access to created deployments. This token only authorizes predictions on deployments in this project, so it can be safely embedded inside an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the key is the column name (e.g. a column with name 'user_id' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed and the value is the unique value of the same entity.
      :type query_data: dict
      :param limit_results: If provided, will limit the number of results to the value specified.
      :type limit_results: int
      :param result_columns: If provided, will limit the columns present in each result to the columns specified in this list.
      :type result_columns: list


   .. py:method:: predict(deployment_token, deployment_id, query_data = {})

      Returns a prediction for Predictive Modeling

      :param deployment_token: A deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, and is safe to embed in an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the key is the column name (e.g. a column with name 'user_id' in the dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed, and the value is the unique value of the same entity.
      :type query_data: dict


   .. py:method:: predict_multiple(deployment_token, deployment_id, query_data = {})

      Returns a list of predictions for predictive modeling.

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, and is safe to embed in an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: A list of dictionaries, where the 'key' is the column name (e.g. a column with name 'user_id' in the dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed, and the 'value' is the unique value of the same entity.
      :type query_data: list


   .. py:method:: predict_from_datasets(deployment_token, deployment_id, query_data = {})

      Returns a list of predictions for Predictive Modeling.

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the 'key' is the source dataset name, and the 'value' is a list of records corresponding to the dataset rows.
      :type query_data: dict


   .. py:method:: predict_lead(deployment_token, deployment_id, query_data, explain_predictions = False, explainer_type = None)

      Returns the probability of a user being a lead based on their interaction with the service/product and their own attributes (e.g. income, assets, credit score, etc.). Note that the inputs to this method, wherever applicable, should be the column names in the dataset mapped to the column mappings in our system (e.g. column 'user_id' mapped to mapping 'LEAD_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary containing user attributes and/or user's interaction data with the product/service (e.g. number of clicks, items in cart, etc.).
      :type query_data: dict
      :param explain_predictions: Will explain predictions for leads
      :type explain_predictions: bool
      :param explainer_type: Type of explainer to use for explanations
      :type explainer_type: str


   .. py:method:: predict_churn(deployment_token, deployment_id, query_data)

      Returns the probability of a user to churn out in response to their interactions with the item/product/service. Note that the inputs to this method, wherever applicable, will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'churn_result' mapped to mapping 'CHURNED_YN' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This will be a dictionary where the 'key' will be the column name (e.g. a column with name 'user_id' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed and the 'value' will be the unique value of the same entity.
      :type query_data: dict


   .. py:method:: predict_takeover(deployment_token, deployment_id, query_data)

      Returns a probability for each class label associated with the types of fraud or a 'yes' or 'no' type label for the possibility of fraud. Note that the inputs to this method, wherever applicable, will be the column names in the dataset mapped to the column mappings in our system (e.g., column 'account_name' mapped to mapping 'ACCOUNT_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary containing account activity characteristics (e.g., login id, login duration, login type, IP address, etc.).
      :type query_data: dict


   .. py:method:: predict_fraud(deployment_token, deployment_id, query_data)

      Returns the probability of a transaction performed under a specific account being fraudulent or not. Note that the inputs to this method, wherever applicable, should be the column names in your dataset mapped to the column mappings in our system (e.g. column 'account_number' mapped to the mapping 'ACCOUNT_ID' in our system).

      :param deployment_token: A deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary containing transaction attributes (e.g. credit card type, transaction location, transaction amount, etc.).
      :type query_data: dict


   .. py:method:: predict_class(deployment_token, deployment_id, query_data = {}, threshold = None, threshold_class = None, thresholds = None, explain_predictions = False, fixed_features = None, nested = None, explainer_type = None)

      Returns a classification prediction

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model within an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the 'Key' is the column name (e.g. a column with the name 'user_id' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed and the 'Value' is the unique value of the same entity.
      :type query_data: dict
      :param threshold: A float value that is applied on the popular class label.
      :type threshold: float
      :param threshold_class: The label upon which the threshold is added (binary labels only).
      :type threshold_class: str
      :param thresholds: Maps labels to thresholds (multi-label classification only). Defaults to F1 optimal threshold if computed for the given class, else uses 0.5.
      :type thresholds: list
      :param explain_predictions: If True, returns the SHAP explanations for all input features.
      :type explain_predictions: bool
      :param fixed_features: A set of input features to treat as constant for explanations.
      :type fixed_features: list
      :param nested: If specified generates prediction delta for each index of the specified nested feature.
      :type nested: str
      :param explainer_type: The type of explainer to use.
      :type explainer_type: str


   .. py:method:: predict_target(deployment_token, deployment_id, query_data = {}, explain_predictions = False, fixed_features = None, nested = None, explainer_type = None)

      Returns a prediction from a classification or regression model. Optionally, includes explanations.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier of a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the 'key' is the column name (e.g. a column with name 'user_id' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the entity against which a prediction is performed and the 'value' is the unique value of the same entity.
      :type query_data: dict
      :param explain_predictions: If true, returns the SHAP explanations for all input features.
      :type explain_predictions: bool
      :param fixed_features: Set of input features to treat as constant for explanations.
      :type fixed_features: list
      :param nested: If specified, generates prediction delta for each index of the specified nested feature.
      :type nested: str
      :param explainer_type: The type of explainer to use.
      :type explainer_type: str


   .. py:method:: get_anomalies(deployment_token, deployment_id, threshold = None, histogram = False)

      Returns a list of anomalies from the training dataset.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param threshold: The threshold score of what is an anomaly. Valid values are between 0.8 and 0.99.
      :type threshold: float
      :param histogram: If True, will return a histogram of the distribution of all points.
      :type histogram: bool


   .. py:method:: is_anomaly(deployment_token, deployment_id, query_data = None)

      Returns a list of anomaly attributes based on login information for a specified account. Note that the inputs to this method, wherever applicable, should be the column names in the dataset mapped to the column mappings in our system (e.g. column 'account_name' mapped to mapping 'ACCOUNT_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: The input data for the prediction.
      :type query_data: dict


   .. py:method:: get_forecast(deployment_token, deployment_id, query_data, future_data = None, num_predictions = None, prediction_start = None, explain_predictions = False, explainer_type = None)

      Returns a list of forecasts for a given entity under the specified project deployment. Note that the inputs to the deployed model will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'holiday_yn' mapped to mapping 'FUTURE' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This will be a dictionary where 'Key' will be the column name (e.g. a column with name 'store_id' in your dataset) mapped to the column mapping ITEM_ID that uniquely identifies the entity against which forecasting is performed and 'Value' will be the unique value of the same entity.
      :type query_data: dict
      :param future_data: This will be a list of values known ahead of time that are relevant for forecasting (e.g. State Holidays, National Holidays, etc.). Each element is a dictionary, where the key and the value both will be of type 'str'. For example future data entered for a Store may be [{"Holiday":"No", "Promo":"Yes", "Date": "2015-07-31 00:00:00"}].
      :type future_data: list
      :param num_predictions: The number of timestamps to predict in the future.
      :type num_predictions: int
      :param prediction_start: The start date for predictions (e.g., "2015-08-01T00:00:00" as input for mid-night of 2015-08-01).
      :type prediction_start: str
      :param explain_predictions: Will explain predictions for forecasting
      :type explain_predictions: bool
      :param explainer_type: Type of explainer to use for explanations
      :type explainer_type: str


   .. py:method:: get_k_nearest(deployment_token, deployment_id, vector, k = None, distance = None, include_score = False)

      Returns the k nearest neighbors for the provided embedding vector.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param vector: Input vector to perform the k nearest neighbors with.
      :type vector: list
      :param k: Overrideable number of items to return.
      :type k: int
      :param distance: Specify the distance function to use when finding nearest neighbors.
      :type distance: str
      :param include_score: If True, will return the score alongside the resulting embedding value.
      :type include_score: bool


   .. py:method:: get_multiple_k_nearest(deployment_token, deployment_id, queries)

      Returns the k nearest neighbors for the queries provided.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param queries: List of mappings of format {"catalogId": "cat0", "vectors": [...], "k": 20, "distance": "euclidean"}. See `getKNearest` for additional information about the supported parameters.
      :type queries: list


   .. py:method:: get_labels(deployment_token, deployment_id, query_data, threshold = None)

      Returns a list of scored labels from a deployment.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: Dictionary where key is "Content" and value is the text from which entities are to be extracted.
      :type query_data: dict
      :param threshold: This argument is deprecated and will be ignored.
      :type threshold: None


   .. py:method:: get_entities_from_pdf(deployment_token, deployment_id, pdf = None, doc_id = None, return_extracted_features = False)

      Extracts text from the provided PDF and returns a list of recognized labels and their scores.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param pdf: (Optional) The pdf to predict on. One of pdf or docId must be specified.
      :type pdf: io.TextIOBase
      :param doc_id: (Optional) The pdf to predict on. One of pdf or docId must be specified.
      :type doc_id: str
      :param return_extracted_features: (Optional) If True, will return all extracted features (e.g. all tokens in a page) from the PDF. Default is False.
      :type return_extracted_features: bool


   .. py:method:: get_recommendations(deployment_token, deployment_id, query_data, num_items = 50, page = 1, exclude_item_ids = None, score_field = '', scaling_factors = None, restrict_items = None, exclude_items = None, explore_fraction = 0.0)

      Returns a list of recommendations for a given user under the specified project deployment. Note that the inputs to this method, wherever applicable, will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'time' mapped to mapping 'TIMESTAMP' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This will be a dictionary where 'Key' will be the column name (e.g. a column with name 'user_name' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the user against which recommendations are made and 'Value' will be the unique value of the same item. For example, if you have the column name 'user_name' mapped to the column mapping 'USER_ID', then the query must have the exact same column name (user_name) as key and the name of the user (John Doe) as value.
      :type query_data: dict
      :param num_items: The number of items to recommend on one page. By default, it is set to 50 items per page.
      :type num_items: int
      :param page: The page number to be displayed. For example, let's say that the num_items is set to 10 with the total recommendations list size of 50 recommended items, then an input value of 2 in the 'page' variable will display a list of items that rank from 11th to 20th.
      :type page: int
      :param exclude_item_ids: [DEPRECATED]
      :type exclude_item_ids: list
      :param score_field: The relative item scores are returned in a separate field named with the same name as the key (score_field) for this argument.
      :type score_field: str
      :param scaling_factors: It allows you to bias the model towards certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1"], "factor": 1.1}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" in reference to which the model recommendations need to be biased; and the key, "factor" takes the factor by which the item scores are adjusted.  Let's take an example where the input to scaling_factors is [{"column": "VehicleType", "values": ["SUV", "Sedan"], "factor": 1.4}]. After we apply the model to get item probabilities, for every SUV and Sedan in the list, we will multiply the respective probability by 1.1 before sorting. This is particularly useful if there's a type of item that might be less popular but you want to promote it or there's an item that always comes up and you want to demote it.
      :type scaling_factors: list
      :param restrict_items: It allows you to restrict the recommendations to certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1", "value3", ...]}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1", "value3", ...]" to which to restrict the recommendations to. Let's take an example where the input to restrict_items is [{"column": "VehicleType", "values": ["SUV", "Sedan"]}]. This input will restrict the recommendations to SUVs and Sedans. This type of restriction is particularly useful if there's a list of items that you know is of use in some particular scenario and you want to restrict the recommendations only to that list.
      :type restrict_items: list
      :param exclude_items: It allows you to exclude certain items from the list of recommendations. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1", ...]}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" to exclude from the recommendations. Let's take an example where the input to exclude_items is [{"column": "VehicleType", "values": ["SUV", "Sedan"]}]. The resulting recommendation list will exclude all SUVs and Sedans. This is
      :type exclude_items: list
      :param explore_fraction: Explore fraction.
      :type explore_fraction: float


   .. py:method:: get_personalized_ranking(deployment_token, deployment_id, query_data, preserve_ranks = None, preserve_unknown_items = False, scaling_factors = None)

      Returns a list of items with personalized promotions for a given user under the specified project deployment. Note that the inputs to this method, wherever applicable, should be the column names in the dataset mapped to the column mappings in our system (e.g. column 'item_code' mapped to mapping 'ITEM_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model in an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This should be a dictionary with two key-value pairs. The first pair represents a 'Key' where the column name (e.g. a column with name 'user_id' in the dataset) mapped to the column mapping USER_ID uniquely identifies the user against whom a prediction is made and a 'Value' which is the identifier value for that user. The second pair will have a 'Key' which will be the name of the column name (e.g. movie_name) mapped to ITEM_ID (unique item identifier) and a 'Value' which will be a list of identifiers that uniquely identifies those items.
      :type query_data: dict
      :param preserve_ranks: List of dictionaries of format {"column": "col0", "values": ["value0, value1"]}, where the ranks of items in query_data is preserved for all the items in "col0" with values, "value0" and "value1". This option is useful when the desired items are being recommended in the desired order and the ranks for those items need to be kept unchanged during recommendation generation.
      :type preserve_ranks: list
      :param preserve_unknown_items: If true, any items that are unknown to the model, will not be reranked, and the original position in the query will be preserved.
      :type preserve_unknown_items: bool
      :param scaling_factors: It allows you to bias the model towards certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1"], "factor": 1.1}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" in reference to which the model recommendations need to be biased; and the key, "factor" takes the factor by which the item scores are adjusted. Let's take an example where the input to scaling_factors is [{"column": "VehicleType", "values": ["SUV", "Sedan"], "factor": 1.4}]. After we apply the model to get item probabilities, for every SUV and Sedan in the list, we will multiply the respective probability by 1.1 before sorting. This is particularly useful if there's a type of item that might be less popular but you want to promote it or there's an item that always comes up and you want to demote it.
      :type scaling_factors: list


   .. py:method:: get_ranked_items(deployment_token, deployment_id, query_data, preserve_ranks = None, preserve_unknown_items = False, scaling_factors = None)

      Returns a list of re-ranked items for a selected user when a list of items is required to be reranked according to the user's preferences. Note that the inputs to this method, wherever applicable, will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'item_code' mapped to mapping 'ITEM_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This will be a dictionary with two key-value pairs. The first pair represents a 'Key' where the column name (e.g. a column with name 'user_id' in your dataset) mapped to the column mapping USER_ID uniquely identifies the user against whom a prediction is made and a 'Value' which is the identifier value for that user. The second pair will have a 'Key' which will be the name of the column name (e.g. movie_name) mapped to ITEM_ID (unique item identifier) and a 'Value' which will be a list of identifiers that uniquely identifies those items.
      :type query_data: dict
      :param preserve_ranks: List of dictionaries of format {"column": "col0", "values": ["value0, value1"]}, where the ranks of items in query_data is preserved for all the items in "col0" with values, "value0" and "value1". This option is useful when the desired items are being recommended in the desired order and the ranks for those items need to be kept unchanged during recommendation generation.
      :type preserve_ranks: list
      :param preserve_unknown_items: If true, any items that are unknown to the model, will not be reranked, and the original position in the query will be preserved
      :type preserve_unknown_items: bool
      :param scaling_factors: It allows you to bias the model towards certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1"], "factor": 1.1}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" in reference to which the model recommendations need to be biased; and the key, "factor" takes the factor by which the item scores are adjusted. Let's take an example where the input to scaling_factors is [{"column": "VehicleType", "values": ["SUV", "Sedan"], "factor": 1.4}]. After we apply the model to get item probabilities, for every SUV and Sedan in the list, we will multiply the respective probability by 1.1 before sorting. This is particularly useful if there is a type of item that might be less popular but you want to promote it or there is an item that always comes up and you want to demote it.
      :type scaling_factors: list


   .. py:method:: get_related_items(deployment_token, deployment_id, query_data, num_items = 50, page = 1, scaling_factors = None, restrict_items = None, exclude_items = None)

      Returns a list of related items for a given item under the specified project deployment. Note that the inputs to this method, wherever applicable, will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'item_code' mapped to mapping 'ITEM_ID' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: This will be a dictionary where the 'key' will be the column name (e.g. a column with name 'user_name' in your dataset) mapped to the column mapping USER_ID that uniquely identifies the user against which related items are determined and the 'value' will be the unique value of the same item. For example, if you have the column name 'user_name' mapped to the column mapping 'USER_ID', then the query must have the exact same column name (user_name) as key and the name of the user (John Doe) as value.
      :type query_data: dict
      :param num_items: The number of items to recommend on one page. By default, it is set to 50 items per page.
      :type num_items: int
      :param page: The page number to be displayed. For example, let's say that the num_items is set to 10 with the total recommendations list size of 50 recommended items, then an input value of 2 in the 'page' variable will display a list of items that rank from 11th to 20th.
      :type page: int
      :param scaling_factors: It allows you to bias the model towards certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1"], "factor": 1.1}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" in reference to which the model recommendations need to be biased; and the key, "factor" takes the factor by which the item scores are adjusted.  Let's take an example where the input to scaling_factors is [{"column": "VehicleType", "values": ["SUV", "Sedan"], "factor": 1.4}]. After we apply the model to get item probabilities, for every SUV and Sedan in the list, we will multiply the respective probability by 1.1 before sorting. This is particularly useful if there's a type of item that might be less popular but you want to promote it or there's an item that always comes up and you want to demote it.
      :type scaling_factors: list
      :param restrict_items: It allows you to restrict the recommendations to certain items. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1", "value3", ...]}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1", "value3", ...]" to which to restrict the recommendations to. Let's take an example where the input to restrict_items is [{"column": "VehicleType", "values": ["SUV", "Sedan"]}]. This input will restrict the recommendations to SUVs and Sedans. This type of restriction is particularly useful if there's a list of items that you know is of use in some particular scenario and you want to restrict the recommendations only to that list.
      :type restrict_items: list
      :param exclude_items: It allows you to exclude certain items from the list of recommendations. The input to this argument is a list of dictionaries where the format of each dictionary is as follows: {"column": "col0", "values": ["value0", "value1", ...]}. The key, "column" takes the name of the column, "col0"; the key, "values" takes the list of items, "["value0", "value1"]" to exclude from the recommendations. Let's take an example where the input to exclude_items is [{"column": "VehicleType", "values": ["SUV", "Sedan"]}]. The resulting recommendation list will exclude all SUVs and Sedans. This is particularly useful if there's a list of items that you know is of no use in some particular scenario and you don't want to show those items present in that list.
      :type exclude_items: list


   .. py:method:: get_chat_response(deployment_token, deployment_id, messages, search_results = None)

      Return a chat response which continues the conversation based on the input messages and search results.

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param messages: A list of chronologically ordered messages, starting with a user message and alternating sources. A message is a dict with attributes:     is_user (bool): Whether the message is from the user.      text (str): The message's text.
      :type messages: list
      :param search_results: A list of chronologically ordered retrieved search results using the deployment. A retrieved search result is a dict with attributes:     msg_id (int): The corresponding message's index.      result (list): List of NlpSearchPrediction objects.
      :type search_results: list


   .. py:method:: get_search_results(deployment_token, deployment_id, query_data)

      Return the most relevant search results to the search query from the uploaded documents.

      :param deployment_token: A token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it can be securely embedded in an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier of a deployment created under the project.
      :type deployment_id: str
      :param query_data: A dictionary where the key is "Content" and the value is the text from which entities are to be extracted.
      :type query_data: dict


   .. py:method:: get_sentiment(deployment_token, deployment_id, document)

      Predicts sentiment on a document

      :param deployment_token: A token used to authenticate access to deployments created in this project. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier for a deployment created under this project.
      :type deployment_id: str
      :param document: The document to be analyzed for sentiment.
      :type document: str


   .. py:method:: get_entailment(deployment_token, deployment_id, document)

      Predicts the classification of the document

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier for the deployment created under the project.
      :type deployment_id: str
      :param document: The document to be classified.
      :type document: str


   .. py:method:: get_classification(deployment_token, deployment_id, document)

      Predicts the classification of the document

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier for the deployment created under the project.
      :type deployment_id: str
      :param document: The document to be classified.
      :type document: str


   .. py:method:: get_summary(deployment_token, deployment_id, query_data)

      Returns a JSON of the predicted summary for the given document. Note that the inputs to this method, wherever applicable, will be the column names in your dataset mapped to the column mappings in our system (e.g. column 'text' mapped to mapping 'DOCUMENT' in our system).

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: Raw data dictionary containing the required document data - must have a key 'document' corresponding to a DOCUMENT type text as value.
      :type query_data: dict


   .. py:method:: predict_language(deployment_token, deployment_id, query_data)

      Predicts the language of the text

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments within this project, making it safe to embed this model in an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: The input string to detect.
      :type query_data: str


   .. py:method:: get_assignments(deployment_token, deployment_id, query_data, forced_assignments = None)

      Get all positive assignments that match a query.

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it can be safely embedded in an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier of a deployment created under the project.
      :type deployment_id: str
      :param query_data: Specifies the set of assignments being requested.
      :type query_data: dict
      :param forced_assignments: Set of assignments to force and resolve before returning query results.
      :type forced_assignments: dict


   .. py:method:: check_constraints(deployment_token, deployment_id, query_data)

      Check for any constraints violated by the overrides.

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model within an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param query_data: Assignment overrides to the solution.
      :type query_data: dict


   .. py:method:: predict_with_binary_data(deployment_token, deployment_id, blob, blob_key_name = 'blob')

      Make predictions for a given blob, e.g. image, audio

      :param deployment_token: A token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model in an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param blob: The multipart/form-data of the data.
      :type blob: io.TextIOBase
      :param blob_key_name: The key to access the blob data in the model query data.
      :type blob_key_name: str


   .. py:method:: describe_image(deployment_token, deployment_id, image, categories, top_n = None)

      Describe the similarity between an image and a list of categories.

      :param deployment_token: Authentication token to access created deployments. This token is only authorized to predict on deployments in the current project, and can be safely embedded in an application or website.
      :type deployment_token: str
      :param deployment_id: Unique identifier of a deployment created under the project.
      :type deployment_id: str
      :param image: Image to describe.
      :type image: io.TextIOBase
      :param categories: List of candidate categories to compare with the image.
      :type categories: list
      :param top_n: Return the N most similar categories.
      :type top_n: int


   .. py:method:: transcribe_audio(deployment_token, deployment_id, audio)

      Transcribe the audio

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to make predictions on deployments in this project, so it can be safely embedded in an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier of a deployment created under the project.
      :type deployment_id: str
      :param audio: The audio to transcribe.
      :type audio: io.TextIOBase


   .. py:method:: classify_image(deployment_token, deployment_id, image)

      Classify an image.

      :param deployment_token: A deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier to a deployment created under the project.
      :type deployment_id: str
      :param image: The binary data of the image to classify.
      :type image: io.TextIOBase


   .. py:method:: classify_pdf(deployment_token, deployment_id, pdf = None)

      Returns a classification prediction from a PDF

      :param deployment_token: The deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model within an application or website.
      :type deployment_token: str
      :param deployment_id: The unique identifier for a deployment created under the project.
      :type deployment_id: str
      :param pdf: (Optional) The pdf to predict on. One of pdf or docId must be specified.
      :type pdf: io.TextIOBase


   .. py:method:: get_objects_from_image(deployment_token, deployment_id, image)

      Classify an image.

      :param deployment_token: A deployment token to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model inside of an application or website.
      :type deployment_token: str
      :param deployment_id: A unique string identifier to a deployment created under the project.
      :type deployment_id: str
      :param image: The binary data of the image to detect objects from.
      :type image: io.TextIOBase


   .. py:method:: transfer_style(deployment_token, deployment_id, source_image, style_image)

      Change the source image to adopt the visual style from the style image.

      :param deployment_token: A token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model in an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param source_image: The source image to apply the makeup.
      :type source_image: io.TextIOBase
      :param style_image: The image that has the style as a reference.
      :type style_image: io.TextIOBase


   .. py:method:: generate_image(deployment_token, deployment_id, query_data)

      Generate an image from text prompt.

      :param deployment_token: The deployment token used to authenticate access to created deployments. This token is only authorized to predict on deployments in this project, so it is safe to embed this model within an application or website.
      :type deployment_token: str
      :param deployment_id: A unique identifier to a deployment created under the project.
      :type deployment_id: str
      :param query_data: Specifies the text prompt. For example, {'prompt': 'a cat'}
      :type query_data: dict


   .. py:method:: create_batch_prediction(deployment_id, table_name = None, name = None, global_prediction_args = None, explanations = False, output_format = None, output_location = None, database_connector_id = None, database_output_config = None, refresh_schedule = None, csv_input_prefix = None, csv_prediction_prefix = None, csv_explanations_prefix = None, output_includes_metadata = None, result_input_columns = None)

      Creates a batch prediction job description for the given deployment.

      :param deployment_id: Unique string identifier for the deployment.
      :type deployment_id: str
      :param table_name: Name of the feature group table to write the results of the batch prediction. Can only be specified if outputLocation and databaseConnectorId are not specified. If tableName is specified, the outputType will be enforced as CSV.
      :type table_name: str
      :param name: Name of the batch prediction job.
      :type name: str
      :param global_prediction_args: Argument(s) to pass on every prediction call.
      :type global_prediction_args: dict
      :param explanations: If true, SHAP explanations will be provided for each prediction, if supported by the use case.
      :type explanations: bool
      :param output_format: Format of the batch prediction output (CSV or JSON).
      :type output_format: str
      :param output_location: Location to write the prediction results. Otherwise, results will be stored in Abacus.AI.
      :type output_location: str
      :param database_connector_id: Unique identifier of a Database Connection to write predictions to. Cannot be specified in conjunction with outputLocation.
      :type database_connector_id: str
      :param database_output_config: Key-value pair of columns/values to write to the database connector. Only available if databaseConnectorId is specified.
      :type database_output_config: dict
      :param refresh_schedule: Cron-style string that describes a schedule in UTC to automatically run the batch prediction.
      :type refresh_schedule: str
      :param csv_input_prefix: Prefix to prepend to the input columns, only applies when output format is CSV.
      :type csv_input_prefix: str
      :param csv_prediction_prefix: Prefix to prepend to the prediction columns, only applies when output format is CSV.
      :type csv_prediction_prefix: str
      :param csv_explanations_prefix: Prefix to prepend to the explanation columns, only applies when output format is CSV.
      :type csv_explanations_prefix: str
      :param output_includes_metadata: If true, output will contain columns including prediction start time, batch prediction version, and model version.
      :type output_includes_metadata: bool
      :param result_input_columns: If present, will limit result files or feature groups to only include columns present in this list.
      :type result_input_columns: list

      :returns: The batch prediction description.
      :rtype: BatchPrediction


   .. py:method:: start_batch_prediction(batch_prediction_id)

      Creates a new batch prediction version job for a given batch prediction job description.

      :param batch_prediction_id: The unique identifier of the batch prediction to create a new version of.
      :type batch_prediction_id: str

      :returns: The batch prediction version started by this method call.
      :rtype: BatchPredictionVersion


   .. py:method:: update_batch_prediction(batch_prediction_id, deployment_id = None, global_prediction_args = None, explanations = None, output_format = None, csv_input_prefix = None, csv_prediction_prefix = None, csv_explanations_prefix = None, output_includes_metadata = None, result_input_columns = None, name = None)

      Update a batch prediction job description.

      :param batch_prediction_id: Unique identifier of the batch prediction.
      :type batch_prediction_id: str
      :param deployment_id: Unique identifier of the deployment.
      :type deployment_id: str
      :param global_prediction_args: Argument(s) to pass on every prediction call.
      :type global_prediction_args: dict
      :param explanations: If True, SHAP explanations for each prediction will be provided, if supported by the use case.
      :type explanations: bool
      :param output_format: If specified, sets the format of the batch prediction output (CSV or JSON).
      :type output_format: str
      :param csv_input_prefix: Prefix to prepend to the input columns, only applies when output format is CSV.
      :type csv_input_prefix: str
      :param csv_prediction_prefix: Prefix to prepend to the prediction columns, only applies when output format is CSV.
      :type csv_prediction_prefix: str
      :param csv_explanations_prefix: Prefix to prepend to the explanation columns, only applies when output format is CSV.
      :type csv_explanations_prefix: str
      :param output_includes_metadata: If True, output will contain columns including prediction start time, batch prediction version, and model version.
      :type output_includes_metadata: bool
      :param result_input_columns: If present, will limit result files or feature groups to only include columns present in this list.
      :type result_input_columns: list
      :param name: If present, will rename the batch prediction.
      :type name: str

      :returns: The batch prediction.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_file_connector_output(batch_prediction_id, output_format = None, output_location = None)

      Updates the file connector output configuration of the batch prediction

      :param batch_prediction_id: The unique identifier of the batch prediction.
      :type batch_prediction_id: str
      :param output_format: The format of the batch prediction output (CSV or JSON). If not specified, the default format will be used.
      :type output_format: str
      :param output_location: The location to write the prediction results. If not specified, results will be stored in Abacus.AI.
      :type output_location: str

      :returns: The batch prediction description.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_database_connector_output(batch_prediction_id, database_connector_id = None, database_output_config = None)

      Updates the database connector output configuration of the batch prediction

      :param batch_prediction_id: Unique string identifier of the batch prediction.
      :type batch_prediction_id: str
      :param database_connector_id: Unique string identifier of an Database Connection to write predictions to.
      :type database_connector_id: str
      :param database_output_config: Key-value pair of columns/values to write to the database connector.
      :type database_output_config: dict

      :returns: Description of the batch prediction.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_feature_group_output(batch_prediction_id, table_name)

      Creates a feature group and sets it as the batch prediction output.

      :param batch_prediction_id: Unique string identifier of the batch prediction.
      :type batch_prediction_id: str
      :param table_name: Name of the feature group table to create.
      :type table_name: str

      :returns: Batch prediction after the output has been applied.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_output_to_console(batch_prediction_id)

      Sets the batch prediction output to the console, clearing both the file connector and database connector configurations.

      :param batch_prediction_id: The unique identifier of the batch prediction.
      :type batch_prediction_id: str

      :returns: The batch prediction description.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_dataset(batch_prediction_id, dataset_type, dataset_id = None)

      [Deprecated] Sets the batch prediction input dataset for legacy dataset-based projects.

      :param batch_prediction_id: Unique identifier of the batch prediction.
      :type batch_prediction_id: str
      :param dataset_type: Enum string of the dataset type to set.
      :type dataset_type: str
      :param dataset_id: Unique identifier of the dataset to set.
      :type dataset_id: str

      :returns: Description of the batch prediction.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_feature_group(batch_prediction_id, feature_group_type, feature_group_id = None)

      Sets the batch prediction input feature group.

      :param batch_prediction_id: Unique identifier of the batch prediction.
      :type batch_prediction_id: str
      :param feature_group_type: Enum string representing the feature group type to set. The type is based on the use case under which the feature group is being created (e.g. Catalog Attributes for personalized recommendation use case).
      :type feature_group_type: str
      :param feature_group_id: Unique identifier of the feature group to set as input to the batch prediction.
      :type feature_group_id: str

      :returns: Description of the batch prediction.
      :rtype: BatchPrediction


   .. py:method:: set_batch_prediction_dataset_remap(batch_prediction_id, dataset_id_remap)

      For the purpose of this batch prediction, will swap out datasets in the training feature groups

      :param batch_prediction_id: Unique string identifier of the batch prediction.
      :type batch_prediction_id: str
      :param dataset_id_remap: Key/value pairs of dataset ids to be replaced during the batch prediction.
      :type dataset_id_remap: dict

      :returns: Batch prediction object.
      :rtype: BatchPrediction


   .. py:method:: delete_batch_prediction(batch_prediction_id)

      Deletes a batch prediction and associated data, such as associated monitors.

      :param batch_prediction_id: Unique string identifier of the batch prediction.
      :type batch_prediction_id: str


   .. py:method:: add_user_item_interaction(streaming_token, dataset_id, timestamp, user_id, item_id, event_type, additional_attributes)

      Adds a user-item interaction record (data row) to a streaming dataset.

      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: The unique string identifier for the streaming dataset to record data to.
      :type dataset_id: str
      :param timestamp: The Unix timestamp of the event.
      :type timestamp: int
      :param user_id: The unique identifier for the user.
      :type user_id: str
      :param item_id: The unique identifier for the items.
      :type item_id: list
      :param event_type: The event type.
      :type event_type: str
      :param additional_attributes: Attributes of the user interaction.
      :type additional_attributes: dict


   .. py:method:: upsert_user_attributes(streaming_token, dataset_id, user_id, user_attributes)

      Adds a user attribute record (data row) to a streaming dataset.

      Either the streaming dataset ID or the project ID is required.


      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: The unique string identifier for the streaming dataset to record data to.
      :type dataset_id: str
      :param user_id: The unique identifier for the user.
      :type user_id: str
      :param user_attributes: Attributes of the user interaction.
      :type user_attributes: dict


   .. py:method:: upsert_item_attributes(streaming_token, dataset_id, item_id, item_attributes)

      Adds an item attributes record (data row) to a streaming dataset.

      Either the streaming dataset ID or the project ID is required.


      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: The unique string identifier for the streaming dataset to record data to.
      :type dataset_id: str
      :param item_id: The unique identifier for the item.
      :type item_id: str
      :param item_attributes: Attributes of the item interaction.
      :type item_attributes: dict


   .. py:method:: add_multiple_user_item_interactions(streaming_token, dataset_id, interactions)

      Adds a user-item interaction record (data row) to a streaming dataset.

      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: The unique string identifier of the streaming dataset to record data to.
      :type dataset_id: str
      :param interactions: List of interactions, each interaction of format {'userId': userId, 'timestamp': timestamp, 'itemId': itemId, 'eventType': eventType, 'additionalAttributes': {'attribute1': 'abc', 'attribute2': 123}}.
      :type interactions: list


   .. py:method:: upsert_multiple_user_attributes(streaming_token, dataset_id, upserts)

      Adds multiple user attributes records (data rows) to a streaming dataset.

      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: A unique string identifier for the streaming dataset to record data to.
      :type dataset_id: str
      :param upserts: List of upserts, each upsert of format {'userId': userId, 'userAttributes': {'attribute1': 'abc', 'attribute2': 123}}.
      :type upserts: list


   .. py:method:: upsert_multiple_item_attributes(streaming_token, dataset_id, upserts)

      Adds multiple item attributes records (data rows) to a streaming dataset.

      :param streaming_token: The streaming token for authenticating requests to the dataset.
      :type streaming_token: str
      :param dataset_id: A unique string identifier for the streaming dataset to record data to.
      :type dataset_id: str
      :param upserts: A list of upserts, each upsert of format {'itemId': itemId, 'itemAttributes': {'attribute1': 'abc', 'attribute2': 123}}.
      :type upserts: list


   .. py:method:: upsert_item_embeddings(streaming_token, model_id, item_id, vector, catalog_id = None)

      Upserts an embedding vector for an item id for a model_id.

      :param streaming_token: The streaming token for authenticating requests to the model.
      :type streaming_token: str
      :param model_id: A unique string identifier for the model to upsert item embeddings to.
      :type model_id: str
      :param item_id: The item id for which its embeddings will be upserted.
      :type item_id: str
      :param vector: The embedding vector.
      :type vector: list
      :param catalog_id: The name of the catalog in the model to update.
      :type catalog_id: str


   .. py:method:: delete_item_embeddings(streaming_token, model_id, item_ids, catalog_id = None)

      Deletes KNN embeddings for a list of item IDs for a given model ID.

      :param streaming_token: The streaming token for authenticating requests to the model.
      :type streaming_token: str
      :param model_id: A unique string identifier for the model from which to delete item embeddings.
      :type model_id: str
      :param item_ids: A list of item IDs whose embeddings will be deleted.
      :type item_ids: list
      :param catalog_id: An optional name to specify which catalog in a model to update.
      :type catalog_id: str


   .. py:method:: upsert_multiple_item_embeddings(streaming_token, model_id, upserts, catalog_id = None)

      Upserts a knn embedding for multiple item ids for a model_id.

      :param streaming_token: The streaming token for authenticating requests to the model.
      :type streaming_token: str
      :param model_id: The unique string identifier of the model to upsert item embeddings to.
      :type model_id: str
      :param upserts: A list of dictionaries of the form {'itemId': ..., 'vector': [...]} for each upsert.
      :type upserts: list
      :param catalog_id: Name of the catalog in the model to update.
      :type catalog_id: str


   .. py:method:: upsert_data(feature_group_id, streaming_token, data)

      Update new data into the feature group for a given lookup key record ID if the record ID is found; otherwise, insert new data into the feature group.

      :param feature_group_id: A unique string identifier of the streaming feature group to record data to.
      :type feature_group_id: str
      :param streaming_token: The streaming token for authenticating requests.
      :type streaming_token: str
      :param data: The data to record, in JSON format.
      :type data: dict


   .. py:method:: append_data(feature_group_id, streaming_token, data)

      Appends new data into the feature group for a given lookup key recordId.

      :param feature_group_id: Unique string identifier for the streaming feature group to record data to.
      :type feature_group_id: str
      :param streaming_token: The streaming token for authenticating requests.
      :type streaming_token: str
      :param data: The data to record as a JSON object.
      :type data: dict


   .. py:method:: upsert_multiple_data(feature_group_id, streaming_token, data)

      Update new data into the feature group for a given lookup key recordId if the recordId is found; otherwise, insert new data into the feature group.

      :param feature_group_id: Unique string identifier for the streaming feature group to record data to.
      :type feature_group_id: str
      :param streaming_token: The streaming token for authenticating requests.
      :type streaming_token: str
      :param data: The data to record, as a list of JSON objects.
      :type data: dict


   .. py:method:: append_multiple_data(feature_group_id, streaming_token, data)

      Appends new data into the feature group for a given lookup key recordId.

      :param feature_group_id: Unique string identifier of the streaming feature group to record data to.
      :type feature_group_id: str
      :param streaming_token: Streaming token for authenticating requests.
      :type streaming_token: str
      :param data: Data to record, as a list of JSON objects.
      :type data: list


   .. py:method:: create_python_function(name, source_code = None, function_name = None, function_variable_mappings = None, package_requirements = None, function_type = 'FEATURE_GROUP')

      Creates a custom Python function that is reusable.

      :param name: The name to identify the Python function.
      :type name: str
      :param source_code: Contents of a valid Python source code file. The source code should contain the transform feature group functions. A list of allowed imports and system libraries for each language is specified in the user functions documentation section.
      :type source_code: str
      :param function_name: The name of the Python function.
      :type function_name: str
      :param function_variable_mappings: List of Python function arguments.
      :type function_variable_mappings: list
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list
      :param function_type: Type of Python function to create.
      :type function_type: str

      :returns: The Python function that can be used (e.g. for feature group transform).
      :rtype: PythonFunction


   .. py:method:: update_python_function(name, source_code = None, function_name = None, function_variable_mappings = None, package_requirements = None)

      Update custom python function with user inputs for the given python function.

      :param name: The name to identify the Python function.
      :type name: str
      :param source_code: Contents of a valid Python source code file. The source code should contain the transform feature group functions. A list of allowed imports and system libraries for each language is specified in the user functions documentation section.
      :type source_code: str
      :param function_name: The name of the Python function.
      :type function_name: str
      :param function_variable_mappings: List of Python function arguments.
      :type function_variable_mappings: list
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list

      :returns: The Python function object.
      :rtype: PythonFunction


   .. py:method:: delete_python_function(name)

      Removes an existing Python function.

      :param name: The name to identify the Python function.
      :type name: str


   .. py:method:: create_graph_dashboard(project_id, name, python_function_ids = None)

      Create a plot dashboard given selected python plots

      :param project_id: A unique string identifier for the plot dashboard.
      :type project_id: str
      :param name: The name of the dashboard.
      :type name: str
      :param python_function_ids: A list of unique string identifiers for the python functions to be used in the graph dashboard.
      :type python_function_ids: list

      :returns: An object describing the graph dashboard.
      :rtype: GraphDashboard


   .. py:method:: delete_graph_dashboard(graph_dashboard_id)

      Deletes a graph dashboard

      :param graph_dashboard_id: Unique string identifier for the graph dashboard to be deleted.
      :type graph_dashboard_id: str


   .. py:method:: update_graph_dashboard(graph_dashboard_id, name = None, python_function_ids = None)

      Updates a graph dashboard

      :param graph_dashboard_id: Unique string identifier for the graph dashboard to update.
      :type graph_dashboard_id: str
      :param name: Name of the dashboard.
      :type name: str
      :param python_function_ids: List of unique string identifiers for the Python functions to be used in the graph dashboard.
      :type python_function_ids: list

      :returns: An object describing the graph dashboard.
      :rtype: GraphDashboard


   .. py:method:: add_graph_to_dashboard(python_function_id, graph_dashboard_id, function_variable_mappings = None, name = None)

      Add a python plot function to a dashboard

      :param python_function_id: Unique string identifier for the Python function.
      :type python_function_id: str
      :param graph_dashboard_id: Unique string identifier for the graph dashboard to update.
      :type graph_dashboard_id: str
      :param function_variable_mappings: List of arguments to be supplied to the function as parameters, in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type function_variable_mappings: dict
      :param name: Name of the added python plot
      :type name: str

      :returns: An object describing the graph dashboard.
      :rtype: GraphDashboard


   .. py:method:: update_graph_to_dashboard(graph_reference_id, function_variable_mappings = None, name = None)

      Update a python plot function to a dashboard

      :param graph_reference_id: A unique string identifier for the graph reference.
      :type graph_reference_id: str
      :param function_variable_mappings: A list of arguments to be supplied to the Python function as parameters in the format [{'name': 'function_argument', 'variable_type': 'FEATURE_GROUP', 'value': 'name_of_feature_group'}].
      :type function_variable_mappings: list
      :param name: The updated name for the graph
      :type name: str

      :returns: An object describing the graph dashboard.
      :rtype: GraphDashboard


   .. py:method:: create_algorithm(name, problem_type, source_code = None, training_data_parameter_names_mapping = None, training_config_parameter_name = None, train_function_name = None, predict_function_name = None, predict_many_function_name = None, initialize_function_name = None, config_options = None, is_default_enabled = False, project_id = None, use_gpu = False, package_requirements = None)

      Creates a custom algorithm that is re-usable for model training.

      :param name: The name to identify the algorithm; only uppercase letters, numbers, and underscores are allowed.
      :type name: str
      :param problem_type: The type of problem this algorithm will work on.
      :type problem_type: str
      :param source_code: Contents of a valid Python source code file. The source code should contain the train/predict/predict_many/initialize functions. A list of allowed import and system libraries for each language is specified in the user functions documentation section.
      :type source_code: str
      :param training_data_parameter_names_mapping: The mapping from feature group types to training data parameter names in the train function.
      :type training_data_parameter_names_mapping: dict
      :param training_config_parameter_name: The train config parameter name in the train function.
      :type training_config_parameter_name: str
      :param train_function_name: Name of the function found in the source code that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param predict_function_name: Name of the function found in the source code that will be executed to run predictions through the model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the source code that will be executed for batch prediction of the model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param initialize_function_name: Name of the function found in the source code to initialize the trained model before using it to make predictions using the model.
      :type initialize_function_name: str
      :param config_options: Map dataset types and configs to train function parameter names.
      :type config_options: dict
      :param is_default_enabled: Whether to train with the algorithm by default.
      :type is_default_enabled: bool
      :param project_id: The unique version ID of the project.
      :type project_id: str
      :param use_gpu: Whether this algorithm needs to run on GPU.
      :type use_gpu: bool
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list

      :returns: The new custom model that can be used for training.
      :rtype: Algorithm


   .. py:method:: delete_algorithm(algorithm)

      Deletes the specified customer algorithm.

      :param algorithm: The name of the algorithm to delete.
      :type algorithm: str


   .. py:method:: update_algorithm(algorithm, source_code = None, training_data_parameter_names_mapping = None, training_config_parameter_name = None, train_function_name = None, predict_function_name = None, predict_many_function_name = None, initialize_function_name = None, config_options = None, is_default_enabled = None, use_gpu = None, package_requirements = None)

      Update a custom algorithm for the given algorithm name. If source code is provided, all function names for the source code must also be provided.

      :param algorithm: The name to identify the algorithm. Only uppercase letters, numbers, and underscores are allowed.
      :type algorithm: str
      :param source_code: Contents of a valid Python source code file. The source code should contain the train/predict/predict_many/initialize functions. A list of allowed imports and system libraries for each language is specified in the user functions documentation section.
      :type source_code: str
      :param training_data_parameter_names_mapping: The mapping from feature group types to training data parameter names in the train function.
      :type training_data_parameter_names_mapping: dict
      :param training_config_parameter_name: The train config parameter name in the train function.
      :type training_config_parameter_name: str
      :param train_function_name: Name of the function found in the source code that will be executed to train the model. It is not executed when this function is run.
      :type train_function_name: str
      :param predict_function_name: Name of the function found in the source code that will be executed to run predictions through the model. It is not executed when this function is run.
      :type predict_function_name: str
      :param predict_many_function_name: Name of the function found in the source code that will be executed for batch prediction of the model. It is not executed when this function is run.
      :type predict_many_function_name: str
      :param initialize_function_name: Name of the function found in the source code to initialize the trained model before using it to make predictions using the model.
      :type initialize_function_name: str
      :param config_options: Map dataset types and configs to train function parameter names.
      :type config_options: dict
      :param is_default_enabled: Whether to train with the algorithm by default.
      :type is_default_enabled: bool
      :param use_gpu: Whether this algorithm needs to run on GPU.
      :type use_gpu: bool
      :param package_requirements: List of package requirement strings. For example: ['numpy==1.2.3', 'pandas>=1.4.0'].
      :type package_requirements: list

      :returns: The new custom model can be used for training.
      :rtype: Algorithm


   .. py:method:: list_builtin_algorithms(project_id, feature_group_ids = None, training_config = None)

      Return list of built-in algorithms based on given input.

      :param project_id: Unique string identifier associated with the project.
      :type project_id: str
      :param feature_group_ids: List of feature group identifiers applied to the algorithms.
      :type feature_group_ids: list
      :param training_config: The training configuration key/value pairs used to train with the algorithm.
      :type training_config: dict

      :returns: List of applicable builtin algorithms.
      :rtype: Algorithm


   .. py:method:: create_custom_loss_function_with_source_code(name, loss_function_type, loss_function_name, loss_function_source_code)

      Registers a new custom loss function which can be used as an objective function during model training.

      :param name: A name for the loss, unique per organization. Must be 50 characters or fewer, and can contain only underscores, numbers, and uppercase alphabets.
      :type name: str
      :param loss_function_type: The category of problems that this loss would be applicable to, e.g. REGRESSION_DL_TF, CLASSIFICATION_DL_TF, etc.
      :type loss_function_type: str
      :param loss_function_name: The name of the function whose full source code is passed in loss_function_source_code.
      :type loss_function_name: str
      :param loss_function_source_code: Python source code string of the function.
      :type loss_function_source_code: str

      :returns: A description of the registered custom loss function.
      :rtype: CustomLossFunction


   .. py:method:: update_custom_loss_function_with_source_code(name, loss_function_name, loss_function_source_code)

      Updates a previously registered custom loss function with a new function implementation.

      :param name: Name of the registered custom loss.
      :type name: str
      :param loss_function_name: Name of the function whose full source code is passed in loss_function_source_code.
      :type loss_function_name: str
      :param loss_function_source_code: Python source code string of the function.
      :type loss_function_source_code: str

      :returns: A description of the updated custom loss function.
      :rtype: CustomLossFunction


   .. py:method:: delete_custom_loss_function(name)

      Deletes a previously registered custom loss function.

      :param name: The name of the custom loss function to be deleted.
      :type name: str


   .. py:method:: create_custom_metric(name, problem_type, custom_metric_function_name = None, source_code = None)

      Registers a new custom metric which can be used as an evaluation metric for the trained model.

      :param name: A unique name for the metric, with a limit of 50 characters. Only underscores, numbers, and uppercase alphabets are allowed.
      :type name: str
      :param problem_type: The problem type that this metric would be applicable to, e.g. REGRESSION, FORECASTING, etc.
      :type problem_type: str
      :param custom_metric_function_name: The name of the function whose full source code is passed in source_code.
      :type custom_metric_function_name: str
      :param source_code: The full source code of the custom metric function. This is required if custom_metric_function_name is passed.
      :type source_code: str

      :returns: The newly created custom metric.
      :rtype: CustomMetric


   .. py:method:: update_custom_metric(name, custom_metric_function_name, source_code)

      Updates a previously registered custom metric with a new function implementation.

      :param name: Name of the registered custom metric.
      :type name: str
      :param custom_metric_function_name: Name of the function whose full source code is passed in `source_code`.
      :type custom_metric_function_name: str
      :param source_code: Python source code string of the function.
      :type source_code: str

      :returns: A description of the updated custom metric.
      :rtype: CustomMetric


   .. py:method:: delete_custom_metric(name)

      Deletes a previously registered custom metric.

      :param name: The name of the custom metric to be deleted.
      :type name: str


   .. py:method:: create_module(name, source_code = None)

      Creates a module that's re-usable in customer's code, e.g. python function, bring your own algorithm and etc.

      :param name: The name to identify the module, only lower case letters and underscore allowed.
      :type name: str
      :param source_code: Contents of a valid python source code file.
      :type source_code: str

      :returns: The new module
      :rtype: Module


   .. py:method:: delete_module(name)

      Deletes the specified customer module.

      :param name: The name of the custom to delete.
      :type name: str


   .. py:method:: update_module(name, source_code = None)

      Update the module.

      :param name: The name to identify the module.
      :type name: str
      :param source_code: Contents of a valid python source code file.
      :type source_code: str

      :returns: The updated module.
      :rtype: Module


   .. py:method:: get_notebook_cell_completion(previous_cells, completion_type = None)

      Calls an autocomplete LLM with the input 'previousCells' which is all the previous context of a notebook in the format [{'type':'code/markdown', 'content':'cell text'}].

      :param previous_cells: A list of cells from Notebook for OpenAI to autocomplete.
      :type previous_cells: list
      :param completion_type: Specify the type based on which the completion is done.
      :type completion_type: str

      :returns: The text to insert into the notebook cell.
      :rtype: NotebookCompletion



