/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace SageMakerFeatureStoreRuntime { /** *

Contains all data plane API operations and data types for the Amazon * SageMaker Feature Store. Use this API to put, delete, and retrieve (get) * features from a feature store.

Use the following operations to configure * your OnlineStore and OfflineStore features, and to * create and manage feature groups:

*/ class AWS_SAGEMAKERFEATURESTORERUNTIME_API SageMakerFeatureStoreRuntimeClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef SageMakerFeatureStoreRuntimeClientConfiguration ClientConfigurationType; typedef SageMakerFeatureStoreRuntimeEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SageMakerFeatureStoreRuntimeClient(const Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration& clientConfiguration = Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SageMakerFeatureStoreRuntimeClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration& clientConfiguration = Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SageMakerFeatureStoreRuntimeClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration& clientConfiguration = Aws::SageMakerFeatureStoreRuntime::SageMakerFeatureStoreRuntimeClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SageMakerFeatureStoreRuntimeClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SageMakerFeatureStoreRuntimeClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SageMakerFeatureStoreRuntimeClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~SageMakerFeatureStoreRuntimeClient(); /** *

Retrieves a batch of Records from a * FeatureGroup.

See Also:

AWS * API Reference

*/ virtual Model::BatchGetRecordOutcome BatchGetRecord(const Model::BatchGetRecordRequest& request) const; /** * A Callable wrapper for BatchGetRecord that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetRecordOutcomeCallable BatchGetRecordCallable(const BatchGetRecordRequestT& request) const { return SubmitCallable(&SageMakerFeatureStoreRuntimeClient::BatchGetRecord, request); } /** * An Async wrapper for BatchGetRecord that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetRecordAsync(const BatchGetRecordRequestT& request, const BatchGetRecordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SageMakerFeatureStoreRuntimeClient::BatchGetRecord, request, handler, context); } /** *

Deletes a Record from a FeatureGroup in the * OnlineStore. Feature Store supports both SoftDelete * and HardDelete. For SoftDelete (default), feature * columns are set to null and the record is no longer retrievable by * GetRecord or BatchGetRecord. For * HardDelete, the complete Record is removed from the * OnlineStore. In both cases, Feature Store appends the deleted * record marker to the OfflineStore with feature values set to * null, is_deleted value set to True, and * EventTime set to the delete input EventTime.

*

Note that the EventTime specified in DeleteRecord * should be set later than the EventTime of the existing record in * the OnlineStore for that RecordIdentifer. If it is * not, the deletion does not occur:

  • For SoftDelete, * the existing (undeleted) record remains in the OnlineStore, though * the delete record marker is still written to the OfflineStore.

    *
  • HardDelete returns EventTime: 400 * ValidationException to indicate that the delete operation failed. No * delete record marker is written to the OfflineStore.

  • *

See Also:

AWS * API Reference

*/ virtual Model::DeleteRecordOutcome DeleteRecord(const Model::DeleteRecordRequest& request) const; /** * A Callable wrapper for DeleteRecord that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRecordOutcomeCallable DeleteRecordCallable(const DeleteRecordRequestT& request) const { return SubmitCallable(&SageMakerFeatureStoreRuntimeClient::DeleteRecord, request); } /** * An Async wrapper for DeleteRecord that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRecordAsync(const DeleteRecordRequestT& request, const DeleteRecordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SageMakerFeatureStoreRuntimeClient::DeleteRecord, request, handler, context); } /** *

Use for OnlineStore serving from a FeatureStore. * Only the latest records stored in the OnlineStore can be retrieved. * If no Record with RecordIdentifierValue is found, then an empty * result is returned.

See Also:

AWS * API Reference

*/ virtual Model::GetRecordOutcome GetRecord(const Model::GetRecordRequest& request) const; /** * A Callable wrapper for GetRecord that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRecordOutcomeCallable GetRecordCallable(const GetRecordRequestT& request) const { return SubmitCallable(&SageMakerFeatureStoreRuntimeClient::GetRecord, request); } /** * An Async wrapper for GetRecord that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRecordAsync(const GetRecordRequestT& request, const GetRecordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SageMakerFeatureStoreRuntimeClient::GetRecord, request, handler, context); } /** *

The PutRecord API is used to ingest a list of * Records into your feature group.

If a new record��s * EventTime is greater, the new record is written to both the * OnlineStore and OfflineStore. Otherwise, the record is * a historic record and it is written only to the OfflineStore.

*

You can specify the ingestion to be applied to the OnlineStore, * OfflineStore, or both by using the TargetStores * request parameter.

You can set the ingested record to expire at a given * time to live (TTL) duration after the record’s event time, * ExpiresAt = EventTime + TtlDuration, by * specifying the TtlDuration parameter. A record level * TtlDuration is set when specifying the TtlDuration * parameter using the PutRecord API call. If the input * TtlDuration is null or unspecified, * TtlDuration is set to the default feature group level * TtlDuration. A record level TtlDuration supersedes the * group level TtlDuration.

See Also:

AWS * API Reference

*/ virtual Model::PutRecordOutcome PutRecord(const Model::PutRecordRequest& request) const; /** * A Callable wrapper for PutRecord that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutRecordOutcomeCallable PutRecordCallable(const PutRecordRequestT& request) const { return SubmitCallable(&SageMakerFeatureStoreRuntimeClient::PutRecord, request); } /** * An Async wrapper for PutRecord that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutRecordAsync(const PutRecordRequestT& request, const PutRecordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&SageMakerFeatureStoreRuntimeClient::PutRecord, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const SageMakerFeatureStoreRuntimeClientConfiguration& clientConfiguration); SageMakerFeatureStoreRuntimeClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace SageMakerFeatureStoreRuntime } // namespace Aws