aws-sdk-sagemakerfeaturestoreruntime 1.66.0 → 1.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb1067b098d127c12d4f4a21c1eaca462c6185789b761ddbdd41ff01e32f08be
4
- data.tar.gz: 6144b26aaa2e9283a38d96d706803ca2a41288a0263def07da63f30066e9b18a
3
+ metadata.gz: a480ad248105bda4bea2774061f03a825d9291acf5d6e04e4157955251346c5a
4
+ data.tar.gz: 216930b1a23393dc1daa2aca5f3f99805429f2798233bd31d685e9e8e9a4f685
5
5
  SHA512:
6
- metadata.gz: eb98b645767c59b1536bc9f75b3d4c7ade6e5a7d647b8b53d9f930169f8f95f3d399d29f62de8a371a073389ec75dbe426d7beae5f65eb089ef0593fc7eec226
7
- data.tar.gz: 7302b6d2971fc97a69a8564b2a2f3ee9938b5d6585c42f60df1b44acde0ba03bd8d6a5b17820a2d0bd929cc1fffedae67f1b31c67062440e80cb62799229023f
6
+ metadata.gz: 8df23151905389bfd3890595afced5ab9005b97a8e91e07e784237acd43c34e545a613ec69edea983edbe11b1ce16252c1e65c9f8ce056317f6032bbec0ca9e2
7
+ data.tar.gz: 7ef26cb0254d02673dfad9e9f19e9f49dd3b9adb841290f7e2698d9a6cd139b80d981aee8cf23ff168102195290ef9ffca4688c07eea890c87f1f7d0d1d1a1dc
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.68.0 (2026-09-02)
5
+ ------------------
6
+
7
+ * Feature - Amazon SageMaker Feature Store now supports the UpdateRecord API, enabling partial updates to individual feature values in an existing Online Store record without rewriting the entire record. This reduces write payloads and latency for high-frequency feature-level writes .
8
+
9
+ 1.67.0 (2026-07-09)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.66.0 (2026-06-29)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.66.0
1
+ 1.68.0
@@ -934,6 +934,140 @@ module Aws::SageMakerFeatureStoreRuntime
934
934
  req.send_request(options)
935
935
  end
936
936
 
937
+ # Updates one or more feature values for an existing record in the
938
+ # specified feature group. Features that you do not include in the
939
+ # request remain unchanged. You can update up to 100 features per call.
940
+ #
941
+ # This operation is available only for feature groups that use the
942
+ # `Standard_V2` or `InMemory` online store type.
943
+ #
944
+ # The record must already exist. If the record does not exist or has
945
+ # been soft-deleted, the operation returns a `ResourceNotFound` error.
946
+ # To create a record, use `PutRecord`.
947
+ #
948
+ # If you provide an `EventTime` that is older than the record's current
949
+ # `EventTime`, the service rejects the update with a
950
+ # `ConflictException`. If the `EventTime` is equal to or newer than the
951
+ # current value, the service applies the update. If you omit
952
+ # `EventTime`, the service keeps the record's existing `EventTime` and
953
+ # applies the update.
954
+ #
955
+ # If you specify a `TtlDuration`, you must also provide an `EventTime`
956
+ # in the request. Otherwise, the operation returns a `ValidationError`.
957
+ #
958
+ # @option params [required, String] :feature_group_name
959
+ # The identifier for the feature group that contains the record to
960
+ # update. You can specify one of the following:
961
+ #
962
+ # * The feature group name.
963
+ #
964
+ # * The feature group Amazon Resource Name (ARN).
965
+ #
966
+ # @option params [required, String] :record_identifier_value_as_string
967
+ # The value that uniquely identifies the record in the feature group.
968
+ # This must match the value defined by the feature group's record
969
+ # identifier feature.
970
+ #
971
+ # @option params [required, Array<Types::FeatureValue>] :features
972
+ # The feature values to write to the record.
973
+ #
974
+ # @option params [Array<String>] :target_stores
975
+ # The target stores for the record update. By default, Amazon SageMaker
976
+ # Feature Store updates the record in all stores associated with the
977
+ # `FeatureGroup`.
978
+ #
979
+ # @option params [Types::TtlDuration] :ttl_duration
980
+ # The time-to-live (TTL) duration for the record. Amazon SageMaker
981
+ # Feature Store deletes the record when `EventTime` + `TtlDuration`
982
+ # elapses. If you omit this parameter, the record's existing TTL
983
+ # setting remains unchanged. For information about `HardDelete`, see the
984
+ # [DeleteRecord][1] operation in the Amazon SageMaker API Reference.
985
+ #
986
+ #
987
+ #
988
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
989
+ #
990
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
991
+ #
992
+ #
993
+ # @example Example: Update specific features in a record
994
+ #
995
+ # resp = client.update_record({
996
+ # feature_group_name: "my-feature-group",
997
+ # features: [
998
+ # {
999
+ # feature_name: "age",
1000
+ # value_as_string: "26",
1001
+ # },
1002
+ # {
1003
+ # feature_name: "membership_tier",
1004
+ # value_as_string: "gold",
1005
+ # },
1006
+ # {
1007
+ # feature_name: "event_time",
1008
+ # value_as_string: "2026-07-26T12:00:00Z",
1009
+ # },
1010
+ # ],
1011
+ # record_identifier_value_as_string: "cust-001",
1012
+ # })
1013
+ #
1014
+ # resp.to_h outputs the following:
1015
+ # {
1016
+ # }
1017
+ #
1018
+ # @example Example: Update features and set a time-to-live (TTL) duration
1019
+ #
1020
+ # resp = client.update_record({
1021
+ # feature_group_name: "my-feature-group",
1022
+ # features: [
1023
+ # {
1024
+ # feature_name: "age",
1025
+ # value_as_string: "26",
1026
+ # },
1027
+ # {
1028
+ # feature_name: "event_time",
1029
+ # value_as_string: "2026-07-26T12:00:00Z",
1030
+ # },
1031
+ # ],
1032
+ # record_identifier_value_as_string: "cust-001",
1033
+ # ttl_duration: {
1034
+ # unit: "Weeks",
1035
+ # value: 4,
1036
+ # },
1037
+ # })
1038
+ #
1039
+ # resp.to_h outputs the following:
1040
+ # {
1041
+ # }
1042
+ #
1043
+ # @example Request syntax with placeholder values
1044
+ #
1045
+ # resp = client.update_record({
1046
+ # feature_group_name: "FeatureGroupNameOrArn", # required
1047
+ # record_identifier_value_as_string: "ValueAsString", # required
1048
+ # features: [ # required
1049
+ # {
1050
+ # feature_name: "FeatureName", # required
1051
+ # value_as_string: "ValueAsString",
1052
+ # value_as_string_list: ["ValueAsString"],
1053
+ # },
1054
+ # ],
1055
+ # target_stores: ["OnlineStore"], # accepts OnlineStore, OfflineStore
1056
+ # ttl_duration: {
1057
+ # unit: "Seconds", # required, accepts Seconds, Minutes, Hours, Days, Weeks
1058
+ # value: 1, # required
1059
+ # },
1060
+ # })
1061
+ #
1062
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/UpdateRecord AWS API Documentation
1063
+ #
1064
+ # @overload update_record(params = {})
1065
+ # @param [Hash] params ({})
1066
+ def update_record(params = {}, options = {})
1067
+ req = build_request(:update_record, params)
1068
+ req.send_request(options)
1069
+ end
1070
+
937
1071
  # @!endgroup
938
1072
 
939
1073
  # @param params ({})
@@ -952,7 +1086,7 @@ module Aws::SageMakerFeatureStoreRuntime
952
1086
  tracer: tracer
953
1087
  )
954
1088
  context[:gem_name] = 'aws-sdk-sagemakerfeaturestoreruntime'
955
- context[:gem_version] = '1.66.0'
1089
+ context[:gem_version] = '1.68.0'
956
1090
  Seahorse::Client::Request.new(handlers, context)
957
1091
  end
958
1092
 
@@ -30,6 +30,7 @@ module Aws::SageMakerFeatureStoreRuntime
30
30
  BatchWriteRecordRequest = Shapes::StructureShape.new(name: 'BatchWriteRecordRequest')
31
31
  BatchWriteRecordResponse = Shapes::StructureShape.new(name: 'BatchWriteRecordResponse')
32
32
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
33
+ ConflictException = Shapes::StructureShape.new(name: 'ConflictException')
33
34
  DeleteRecordRequest = Shapes::StructureShape.new(name: 'DeleteRecordRequest')
34
35
  DeletionMode = Shapes::StringShape.new(name: 'DeletionMode')
35
36
  ExpirationTimeResponse = Shapes::StringShape.new(name: 'ExpirationTimeResponse')
@@ -59,6 +60,7 @@ module Aws::SageMakerFeatureStoreRuntime
59
60
  TtlDurationValue = Shapes::IntegerShape.new(name: 'TtlDurationValue')
60
61
  UnprocessedBatchWriteRecordEntries = Shapes::ListShape.new(name: 'UnprocessedBatchWriteRecordEntries')
61
62
  UnprocessedIdentifiers = Shapes::ListShape.new(name: 'UnprocessedIdentifiers')
63
+ UpdateRecordRequest = Shapes::StructureShape.new(name: 'UpdateRecordRequest')
62
64
  ValidationError = Shapes::StructureShape.new(name: 'ValidationError')
63
65
  ValueAsString = Shapes::StringShape.new(name: 'ValueAsString')
64
66
  ValueAsStringList = Shapes::ListShape.new(name: 'ValueAsStringList')
@@ -121,6 +123,9 @@ module Aws::SageMakerFeatureStoreRuntime
121
123
  BatchWriteRecordResponse.add_member(:unprocessed_entries, Shapes::ShapeRef.new(shape: UnprocessedBatchWriteRecordEntries, required: true, location_name: "UnprocessedEntries"))
122
124
  BatchWriteRecordResponse.struct_class = Types::BatchWriteRecordResponse
123
125
 
126
+ ConflictException.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "Message"))
127
+ ConflictException.struct_class = Types::ConflictException
128
+
124
129
  DeleteRecordRequest.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: FeatureGroupNameOrArn, required: true, location: "uri", location_name: "FeatureGroupName"))
125
130
  DeleteRecordRequest.add_member(:record_identifier_value_as_string, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location: "querystring", location_name: "RecordIdentifierValueAsString"))
126
131
  DeleteRecordRequest.add_member(:event_time, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location: "querystring", location_name: "EventTime"))
@@ -186,6 +191,13 @@ module Aws::SageMakerFeatureStoreRuntime
186
191
 
187
192
  UnprocessedIdentifiers.member = Shapes::ShapeRef.new(shape: BatchGetRecordIdentifier)
188
193
 
194
+ UpdateRecordRequest.add_member(:feature_group_name, Shapes::ShapeRef.new(shape: FeatureGroupNameOrArn, required: true, location: "uri", location_name: "FeatureGroupName"))
195
+ UpdateRecordRequest.add_member(:record_identifier_value_as_string, Shapes::ShapeRef.new(shape: ValueAsString, required: true, location_name: "RecordIdentifierValueAsString"))
196
+ UpdateRecordRequest.add_member(:features, Shapes::ShapeRef.new(shape: Record, required: true, location_name: "Features"))
197
+ UpdateRecordRequest.add_member(:target_stores, Shapes::ShapeRef.new(shape: TargetStores, location_name: "TargetStores"))
198
+ UpdateRecordRequest.add_member(:ttl_duration, Shapes::ShapeRef.new(shape: TtlDuration, location_name: "TtlDuration"))
199
+ UpdateRecordRequest.struct_class = Types::UpdateRecordRequest
200
+
189
201
  ValidationError.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "Message"))
190
202
  ValidationError.struct_class = Types::ValidationError
191
203
 
@@ -291,6 +303,20 @@ module Aws::SageMakerFeatureStoreRuntime
291
303
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailable)
292
304
  o.errors << Shapes::ShapeRef.new(shape: AccessForbidden)
293
305
  end)
306
+
307
+ api.add_operation(:update_record, Seahorse::Model::Operation.new.tap do |o|
308
+ o.name = "UpdateRecord"
309
+ o.http_method = "POST"
310
+ o.http_request_uri = "/FeatureGroup/{FeatureGroupName}/Record"
311
+ o.input = Shapes::ShapeRef.new(shape: UpdateRecordRequest)
312
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
313
+ o.errors << Shapes::ShapeRef.new(shape: ValidationError)
314
+ o.errors << Shapes::ShapeRef.new(shape: InternalFailure)
315
+ o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailable)
316
+ o.errors << Shapes::ShapeRef.new(shape: AccessForbidden)
317
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFound)
318
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
319
+ end)
294
320
  end
295
321
 
296
322
  end
@@ -28,6 +28,7 @@ module Aws::SageMakerFeatureStoreRuntime
28
28
  #
29
29
  # ## Error Classes
30
30
  # * {AccessForbidden}
31
+ # * {ConflictException}
31
32
  # * {InternalFailure}
32
33
  # * {ResourceNotFound}
33
34
  # * {ServiceUnavailable}
@@ -54,6 +55,21 @@ module Aws::SageMakerFeatureStoreRuntime
54
55
  end
55
56
  end
56
57
 
58
+ class ConflictException < ServiceError
59
+
60
+ # @param [Seahorse::Client::RequestContext] context
61
+ # @param [String] message
62
+ # @param [Aws::SageMakerFeatureStoreRuntime::Types::ConflictException] data
63
+ def initialize(context, message, data = Aws::EmptyStructure.new)
64
+ super(context, message, data)
65
+ end
66
+
67
+ # @return [String]
68
+ def message
69
+ @message || @data[:message]
70
+ end
71
+ end
72
+
57
73
  class InternalFailure < ServiceError
58
74
 
59
75
  # @param [Seahorse::Client::RequestContext] context
@@ -267,6 +267,22 @@ module Aws::SageMakerFeatureStoreRuntime
267
267
  include Aws::Structure
268
268
  end
269
269
 
270
+ # The service rejected the update because the provided `EventTime` is
271
+ # older than the record's current `EventTime`. To persist the update,
272
+ # retrieve the record's latest `EventTime` and resubmit the request
273
+ # with an `EventTime` that is equal to or newer than the current value.
274
+ #
275
+ # @!attribute [rw] message
276
+ # @return [String]
277
+ #
278
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/ConflictException AWS API Documentation
279
+ #
280
+ class ConflictException < Struct.new(
281
+ :message)
282
+ SENSITIVE = []
283
+ include Aws::Structure
284
+ end
285
+
270
286
  # @!attribute [rw] feature_group_name
271
287
  # The name or Amazon Resource Name (ARN) of the feature group to
272
288
  # delete the record from.
@@ -546,6 +562,56 @@ module Aws::SageMakerFeatureStoreRuntime
546
562
  include Aws::Structure
547
563
  end
548
564
 
565
+ # @!attribute [rw] feature_group_name
566
+ # The identifier for the feature group that contains the record to
567
+ # update. You can specify one of the following:
568
+ #
569
+ # * The feature group name.
570
+ #
571
+ # * The feature group Amazon Resource Name (ARN).
572
+ # @return [String]
573
+ #
574
+ # @!attribute [rw] record_identifier_value_as_string
575
+ # The value that uniquely identifies the record in the feature group.
576
+ # This must match the value defined by the feature group's record
577
+ # identifier feature.
578
+ # @return [String]
579
+ #
580
+ # @!attribute [rw] features
581
+ # The feature values to write to the record.
582
+ # @return [Array<Types::FeatureValue>]
583
+ #
584
+ # @!attribute [rw] target_stores
585
+ # The target stores for the record update. By default, Amazon
586
+ # SageMaker Feature Store updates the record in all stores associated
587
+ # with the `FeatureGroup`.
588
+ # @return [Array<String>]
589
+ #
590
+ # @!attribute [rw] ttl_duration
591
+ # The time-to-live (TTL) duration for the record. Amazon SageMaker
592
+ # Feature Store deletes the record when `EventTime` + `TtlDuration`
593
+ # elapses. If you omit this parameter, the record's existing TTL
594
+ # setting remains unchanged. For information about `HardDelete`, see
595
+ # the [DeleteRecord][1] operation in the Amazon SageMaker API
596
+ # Reference.
597
+ #
598
+ #
599
+ #
600
+ # [1]: https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_feature_store_DeleteRecord.html
601
+ # @return [Types::TtlDuration]
602
+ #
603
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sagemaker-featurestore-runtime-2020-07-01/UpdateRecordRequest AWS API Documentation
604
+ #
605
+ class UpdateRecordRequest < Struct.new(
606
+ :feature_group_name,
607
+ :record_identifier_value_as_string,
608
+ :features,
609
+ :target_stores,
610
+ :ttl_duration)
611
+ SENSITIVE = []
612
+ include Aws::Structure
613
+ end
614
+
549
615
  # There was an error validating your request.
550
616
  #
551
617
  # @!attribute [rw] message
@@ -54,7 +54,7 @@ module Aws::SageMakerFeatureStoreRuntime
54
54
  autoload :EndpointProvider, 'aws-sdk-sagemakerfeaturestoreruntime/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-sagemakerfeaturestoreruntime/endpoints'
56
56
 
57
- GEM_VERSION = '1.66.0'
57
+ GEM_VERSION = '1.68.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -183,6 +183,25 @@ module Aws
183
183
  }
184
184
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
185
185
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
186
+
187
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/SageMakerFeatureStoreRuntime/Client.html#update_record-instance_method
188
+ def update_record: (
189
+ feature_group_name: ::String,
190
+ record_identifier_value_as_string: ::String,
191
+ features: Array[
192
+ {
193
+ feature_name: ::String,
194
+ value_as_string: ::String?,
195
+ value_as_string_list: Array[::String]?
196
+ }
197
+ ],
198
+ ?target_stores: Array[("OnlineStore" | "OfflineStore")],
199
+ ?ttl_duration: {
200
+ unit: ("Seconds" | "Minutes" | "Hours" | "Days" | "Weeks"),
201
+ value: ::Integer
202
+ }
203
+ ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
204
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
186
205
  end
187
206
  end
188
207
  end
data/sig/errors.rbs CHANGED
@@ -14,6 +14,9 @@ module Aws
14
14
  class AccessForbidden < ::Aws::Errors::ServiceError
15
15
  def message: () -> ::String
16
16
  end
17
+ class ConflictException < ::Aws::Errors::ServiceError
18
+ def message: () -> ::String
19
+ end
17
20
  class InternalFailure < ::Aws::Errors::ServiceError
18
21
  def message: () -> ::String
19
22
  end
data/sig/types.rbs CHANGED
@@ -76,6 +76,11 @@ module Aws::SageMakerFeatureStoreRuntime
76
76
  SENSITIVE: []
77
77
  end
78
78
 
79
+ class ConflictException
80
+ attr_accessor message: ::String
81
+ SENSITIVE: []
82
+ end
83
+
79
84
  class DeleteRecordRequest
80
85
  attr_accessor feature_group_name: ::String
81
86
  attr_accessor record_identifier_value_as_string: ::String
@@ -149,6 +154,15 @@ module Aws::SageMakerFeatureStoreRuntime
149
154
  SENSITIVE: []
150
155
  end
151
156
 
157
+ class UpdateRecordRequest
158
+ attr_accessor feature_group_name: ::String
159
+ attr_accessor record_identifier_value_as_string: ::String
160
+ attr_accessor features: ::Array[Types::FeatureValue]
161
+ attr_accessor target_stores: ::Array[("OnlineStore" | "OfflineStore")]
162
+ attr_accessor ttl_duration: Types::TtlDuration
163
+ SENSITIVE: []
164
+ end
165
+
152
166
  class ValidationError
153
167
  attr_accessor message: ::String
154
168
  SENSITIVE: []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-sagemakerfeaturestoreruntime
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.66.0
4
+ version: 1.68.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: '3'
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 3.248.0
21
+ version: 3.254.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,7 +28,7 @@ dependencies:
28
28
  version: '3'
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 3.248.0
31
+ version: 3.254.0
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: aws-sigv4
34
34
  requirement: !ruby/object:Gem::Requirement