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