/**
* 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