class_docstr: FeatureGroup definition.
  
  This class instantiates a FeatureGroup object that comprises of a name for the FeatureGroup,
  session instance, and a list of feature definition objects i.e., FeatureDefinition.
  
  Attributes:
      name (str): name of the FeatureGroup instance.
      sagemaker_session (Session): session instance to perform boto calls.
          If None, a new Session will be created.
      feature_definitions (Sequence[FeatureDefinition]): list of FeatureDefinitions.
class_docstr_tok: ["FeatureGroup","definition",".","This","class","instantiates","a","FeatureGroup","object","that","comprises","of","a","name","for","the","FeatureGroup",",","session","instance",",","and","a","list","of","feature","definition","objects","i.e.",",","FeatureDefinition",".","Attributes",":","name","(","str",")",":","name","of","the","FeatureGroup","instance",".","sagemaker_session","(","Session",")",":","session","instance","to","perform","boto","calls",".","If","None",",","a","new","Session","will","be","created",".","feature_definitions","(","Sequence","[","FeatureDefinition","]",")",":","list","of","FeatureDefinitions","."]
docstr: Create a SageMaker FeatureStore FeatureGroup.
  
  Args:
      s3_uri (Union[str, bool]): S3 URI of the offline store, set to
          ``False`` to disable offline store.
      record_identifier_name (str): name of the record identifier feature.
      event_time_feature_name (str): name of the event time feature.
      role_arn (str): ARN of the role used to call CreateFeatureGroup.
      online_store_kms_key_id (str): KMS key ARN for online store (default: None).
      ttl_duration (TtlDuration): Default time to live duration for records (default: None).
      enable_online_store (bool): whether to enable online store or not (default: False).
      offline_store_kms_key_id (str): KMS key ARN for offline store (default: None).
          If a KMS encryption key is not specified, SageMaker encrypts all data at
          rest using the default AWS KMS key. By defining your bucket-level key for
          SSE, you can reduce the cost of AWS KMS requests.
          For more information, see
          `Bucket Key
          <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html>`_
          in the Amazon S3 User Guide.
      disable_glue_table_creation (bool): whether to turn off Glue table creation
          or not (default: False).
      data_catalog_config (DataCatalogConfig): configuration for
          Metadata store (default: None).
      description (str): description of the FeatureGroup (default: None).
      tags (Optional[Tags]): Tags for labeling a FeatureGroup (default: None).
      table_format (TableFormatEnum): format of the offline store table (default: None).
      online_store_storage_type (OnlineStoreStorageTypeEnum): storage type for the
          online store (default: None).
  
  Returns:
      Response dict from service.
docstr_tok: ["Create","a","SageMaker","FeatureStore","FeatureGroup",".","Args",":","s3_uri","(","Union","[","str",",","bool","]",")",":","S3","URI","of","the","offline","store",",","set","to","``","False","``","to","disable","offline","store",".","record_identifier_name","(","str",")",":","name","of","the","record","identifier","feature",".","event_time_feature_name","(","str",")",":","name","of","the","event","time","feature",".","role_arn","(","str",")",":","ARN","of","the","role","used","to","call","CreateFeatureGroup",".","online_store_kms_key_id","(","str",")",":","KMS","key","ARN","for","online","store","(","default",":","None",")",".","ttl_duration","(","TtlDuration",")",":","Default","time","to","live","duration","for","records","(","default",":","None",")",".","enable_online_store","(","bool",")",":","whether","to","enable","online","store","or","not","(","default",":","False",")",".","offline_store_kms_key_id","(","str",")",":","KMS","key","ARN","for","offline","store","(","default",":","None",")",".","If","a","KMS","encryption","key","is","not","specified",",","SageMaker","encrypts","all","data","at","rest","using","the","default","AWS","KMS","key",".","By","defining","your","bucket-level","key","for","SSE",",","you","can","reduce","the","cost","of","AWS","KMS","requests",".","For","more","information",",","see","`","Bucket","Key","<","https",":","\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/bucket-key.html",">","`","_","in","the","Amazon","S3","User","Guide",".","disable_glue_table_creation","(","bool",")",":","whether","to","turn","off","Glue","table","creation","or","not","(","default",":","False",")",".","data_catalog_config","(","DataCatalogConfig",")",":","configuration","for","Metadata","store","(","default",":","None",")",".","description","(","str",")",":","description","of","the","FeatureGroup","(","default",":","None",")",".","tags","(","Optional","[","Tags","]",")",":","Tags","for","labeling","a","FeatureGroup","(","default",":","None",")",".","table_format","(","TableFormatEnum",")",":","format","of","the","offline","store","table","(","default",":","None",")",".","online_store_storage_type","(","OnlineStoreStorageTypeEnum",")",":","storage","type","for","the","online","store","(","default",":","None",")",".","Returns",":","Response","dict","from","service","."]
code: def create(
      self,
      s3_uri: Union[str, bool],
      record_identifier_name: str,
      event_time_feature_name: str,
      role_arn: str = None,
      online_store_kms_key_id: str = None,
      enable_online_store: bool = False,
      ttl_duration: TtlDuration = None,
      offline_store_kms_key_id: str = None,
      disable_glue_table_creation: bool = False,
      data_catalog_config: DataCatalogConfig = None,
      description: str = None,
      tags: Optional[Tags] = None,
      table_format: TableFormatEnum = None,
      online_store_storage_type: OnlineStoreStorageTypeEnum = None,
  ) -> Dict[str, Any]:
      """Create a SageMaker FeatureStore FeatureGroup.
  
      Args:
          s3_uri (Union[str, bool]): S3 URI of the offline store, set to
              ``False`` to disable offline store.
          record_identifier_name (str): name of the record identifier feature.
          event_time_feature_name (str): name of the event time feature.
          role_arn (str): ARN of the role used to call CreateFeatureGroup.
          online_store_kms_key_id (str): KMS key ARN for online store (default: None).
          ttl_duration (TtlDuration): Default time to live duration for records (default: None).
          enable_online_store (bool): whether to enable online store or not (default: False).
          offline_store_kms_key_id (str): KMS key ARN for offline store (default: None).
              If a KMS encryption key is not specified, SageMaker encrypts all data at
              rest using the default AWS KMS key. By defining your bucket-level key for
              SSE, you can reduce the cost of AWS KMS requests.
              For more information, see
              `Bucket Key
              <https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html>`_
              in the Amazon S3 User Guide.
          disable_glue_table_creation (bool): whether to turn off Glue table creation
              or not (default: False).
          data_catalog_config (DataCatalogConfig): configuration for
              Metadata store (default: None).
          description (str): description of the FeatureGroup (default: None).
          tags (Optional[Tags]): Tags for labeling a FeatureGroup (default: None).
          table_format (TableFormatEnum): format of the offline store table (default: None).
          online_store_storage_type (OnlineStoreStorageTypeEnum): storage type for the
              online store (default: None).
  
      Returns:
          Response dict from service.
      """
      role_arn = resolve_value_from_config(
          role_arn,
          FEATURE_GROUP_ROLE_ARN_PATH,
          sagemaker_session=self.sagemaker_session,
      )
      offline_store_kms_key_id = resolve_value_from_config(
          offline_store_kms_key_id,
          FEATURE_GROUP_OFFLINE_STORE_KMS_KEY_ID_PATH,
          sagemaker_session=self.sagemaker_session,
      )
      online_store_kms_key_id = resolve_value_from_config(
          online_store_kms_key_id,
          FEATURE_GROUP_ONLINE_STORE_KMS_KEY_ID_PATH,
          sagemaker_session=self.sagemaker_session,
      )
      if not role_arn:
          # Originally IAM role was a required parameter.
          # Now we marked that as Optional because we can fetch it from SageMakerConfig,
          # Because of marking that parameter as optional, we should validate if it is None, even
          # after fetching the config.
          raise ValueError(
              "An AWS IAM role is required to create a Feature Group."
          )
      create_feature_store_args = dict(
          feature_group_name=self.name,
          record_identifier_name=record_identifier_name,
          event_time_feature_name=event_time_feature_name,
          feature_definitions=[
              feature_definition.to_dict()
              for feature_definition in self.feature_definitions
          ],
          role_arn=role_arn,
          description=description,
          tags=format_tags(tags),
      )
  
      # online store configuration
      if enable_online_store:
          online_store_config = OnlineStoreConfig(
              enable_online_store=enable_online_store,
              ttl_duration=ttl_duration,
              storage_type=online_store_storage_type,
          )
          if online_store_kms_key_id is not None:
              online_store_config.online_store_security_config = (
                  OnlineStoreSecurityConfig(
                      kms_key_id=online_store_kms_key_id
                  )
              )
          create_feature_store_args.update(
              {"online_store_config": online_store_config.to_dict()}
          )
  
      # offline store configuration
      if s3_uri:
          s3_storage_config = S3StorageConfig(s3_uri=s3_uri)
          if offline_store_kms_key_id:
              s3_storage_config.kms_key_id = offline_store_kms_key_id
          offline_store_config = OfflineStoreConfig(
              s3_storage_config=s3_storage_config,
              disable_glue_table_creation=disable_glue_table_creation,
              data_catalog_config=data_catalog_config,
              table_format=table_format,
          )
          create_feature_store_args.update(
              {"offline_store_config": offline_store_config.to_dict()}
          )
  
      return self.sagemaker_session.create_feature_group(
          **create_feature_store_args
      )
  
imports: from __future__ import absolute_import
  import copy
  import logging
  import math
  import os
  import tempfile
  from concurrent.futures import as_completed
  from concurrent.futures import ThreadPoolExecutor
  from typing import Optional, Sequence, List, Dict, Any, Union
  from urllib.parse import urlparse
  from multiprocessing.pool import AsyncResult
  import signal
  import attr
  import pandas
  from pandas import DataFrame
  import boto3
  from botocore.config import Config
  from pathos.multiprocessing import ProcessingPool
  from sagemaker.config import FEATURE_GROUP_ROLE_ARN_PATH, FEATURE_GROUP_OFFLINE_STORE_KMS_KEY_ID_PATH, FEATURE_GROUP_ONLINE_STORE_KMS_KEY_ID_PATH
  from sagemaker.session import Session
  from sagemaker.feature_store.feature_definition import FeatureDefinition, FeatureTypeEnum
  from sagemaker.feature_store.inputs import OnlineStoreConfig, OnlineStoreSecurityConfig, S3StorageConfig, OfflineStoreConfig, DataCatalogConfig, FeatureValue, FeatureParameter, TableFormatEnum, DeletionModeEnum, TtlDuration, OnlineStoreConfigUpdate, OnlineStoreStorageTypeEnum
  from sagemaker.utils import resolve_value_from_config, format_tags, Tags
label_desc: Use image node_id 1 for calling the FeatureGroup obj's underlying member method code with example usage: obj.create(s3_uri, record_identifier_name, event_time_feature_name, role_arn, online_store_kms_key_id, enable_online_store, ttl_duration, offline_store_kms_key_id, disable_glue_table_creation, data_catalog_config, description, tags, table_format, online_store_storage_type) and returns: self