aws-sdk-dynamodb 1.170.0 → 1.172.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.
@@ -110,6 +110,7 @@ module Aws::DynamoDB
110
110
  CreateReplicationGroupMemberAction = Shapes::StructureShape.new(name: 'CreateReplicationGroupMemberAction')
111
111
  CreateTableInput = Shapes::StructureShape.new(name: 'CreateTableInput')
112
112
  CreateTableOutput = Shapes::StructureShape.new(name: 'CreateTableOutput')
113
+ CreateVectorIndexAction = Shapes::StructureShape.new(name: 'CreateVectorIndexAction')
113
114
  CsvDelimiter = Shapes::StringShape.new(name: 'CsvDelimiter')
114
115
  CsvHeader = Shapes::StringShape.new(name: 'CsvHeader')
115
116
  CsvHeaderList = Shapes::ListShape.new(name: 'CsvHeaderList')
@@ -129,6 +130,7 @@ module Aws::DynamoDB
129
130
  DeleteResourcePolicyOutput = Shapes::StructureShape.new(name: 'DeleteResourcePolicyOutput')
130
131
  DeleteTableInput = Shapes::StructureShape.new(name: 'DeleteTableInput')
131
132
  DeleteTableOutput = Shapes::StructureShape.new(name: 'DeleteTableOutput')
133
+ DeleteVectorIndexAction = Shapes::StructureShape.new(name: 'DeleteVectorIndexAction')
132
134
  DeletionProtectionEnabled = Shapes::BooleanShape.new(name: 'DeletionProtectionEnabled')
133
135
  DescribeBackupInput = Shapes::StructureShape.new(name: 'DescribeBackupInput')
134
136
  DescribeBackupOutput = Shapes::StructureShape.new(name: 'DescribeBackupOutput')
@@ -422,6 +424,15 @@ module Aws::DynamoDB
422
424
  ScanOutput = Shapes::StructureShape.new(name: 'ScanOutput')
423
425
  ScanSegment = Shapes::IntegerShape.new(name: 'ScanSegment')
424
426
  ScanTotalSegments = Shapes::IntegerShape.new(name: 'ScanTotalSegments')
427
+ ScoreNumber = Shapes::FloatShape.new(name: 'ScoreNumber')
428
+ SearchResultItem = Shapes::StructureShape.new(name: 'SearchResultItem')
429
+ SearchResultList = Shapes::ListShape.new(name: 'SearchResultList')
430
+ SearchSchema = Shapes::ListShape.new(name: 'SearchSchema')
431
+ SearchSchemaElement = Shapes::StructureShape.new(name: 'SearchSchemaElement')
432
+ SearchSchemaElementType = Shapes::StringShape.new(name: 'SearchSchemaElementType')
433
+ SearchVectorList = Shapes::ListShape.new(name: 'SearchVectorList')
434
+ SearchVectorsInput = Shapes::StructureShape.new(name: 'SearchVectorsInput')
435
+ SearchVectorsOutput = Shapes::StructureShape.new(name: 'SearchVectorsOutput')
425
436
  SecondaryIndexesCapacityMap = Shapes::MapShape.new(name: 'SecondaryIndexesCapacityMap')
426
437
  Select = Shapes::StringShape.new(name: 'Select')
427
438
  SourceTableDetails = Shapes::StructureShape.new(name: 'SourceTableDetails')
@@ -464,6 +475,7 @@ module Aws::DynamoDB
464
475
  TimeToLiveEnabled = Shapes::BooleanShape.new(name: 'TimeToLiveEnabled')
465
476
  TimeToLiveSpecification = Shapes::StructureShape.new(name: 'TimeToLiveSpecification')
466
477
  TimeToLiveStatus = Shapes::StringShape.new(name: 'TimeToLiveStatus')
478
+ TopKInteger = Shapes::IntegerShape.new(name: 'TopKInteger')
467
479
  TransactGetItem = Shapes::StructureShape.new(name: 'TransactGetItem')
468
480
  TransactGetItemList = Shapes::ListShape.new(name: 'TransactGetItemList')
469
481
  TransactGetItemsInput = Shapes::StructureShape.new(name: 'TransactGetItemsInput')
@@ -499,6 +511,19 @@ module Aws::DynamoDB
499
511
  UpdateTableReplicaAutoScalingOutput = Shapes::StructureShape.new(name: 'UpdateTableReplicaAutoScalingOutput')
500
512
  UpdateTimeToLiveInput = Shapes::StructureShape.new(name: 'UpdateTimeToLiveInput')
501
513
  UpdateTimeToLiveOutput = Shapes::StructureShape.new(name: 'UpdateTimeToLiveOutput')
514
+ VectorAttributeDefinition = Shapes::StructureShape.new(name: 'VectorAttributeDefinition')
515
+ VectorAttributeName = Shapes::StringShape.new(name: 'VectorAttributeName')
516
+ VectorCapacity = Shapes::StructureShape.new(name: 'VectorCapacity')
517
+ VectorDistanceFunction = Shapes::StringShape.new(name: 'VectorDistanceFunction')
518
+ VectorIndex = Shapes::StructureShape.new(name: 'VectorIndex')
519
+ VectorIndexDescription = Shapes::StructureShape.new(name: 'VectorIndexDescription')
520
+ VectorIndexDescriptionList = Shapes::ListShape.new(name: 'VectorIndexDescriptionList')
521
+ VectorIndexInfo = Shapes::StructureShape.new(name: 'VectorIndexInfo')
522
+ VectorIndexList = Shapes::ListShape.new(name: 'VectorIndexList')
523
+ VectorIndexUpdate = Shapes::StructureShape.new(name: 'VectorIndexUpdate')
524
+ VectorIndexUpdateList = Shapes::ListShape.new(name: 'VectorIndexUpdateList')
525
+ VectorIndexes = Shapes::ListShape.new(name: 'VectorIndexes')
526
+ VectorIndexesCapacityMap = Shapes::MapShape.new(name: 'VectorIndexesCapacityMap')
502
527
  WarmThroughput = Shapes::StructureShape.new(name: 'WarmThroughput')
503
528
  WitnessStatus = Shapes::StringShape.new(name: 'WitnessStatus')
504
529
  WriteRequest = Shapes::StructureShape.new(name: 'WriteRequest')
@@ -704,6 +729,7 @@ module Aws::DynamoDB
704
729
  ConsumedCapacity.add_member(:table, Shapes::ShapeRef.new(shape: Capacity, location_name: "Table"))
705
730
  ConsumedCapacity.add_member(:local_secondary_indexes, Shapes::ShapeRef.new(shape: SecondaryIndexesCapacityMap, location_name: "LocalSecondaryIndexes"))
706
731
  ConsumedCapacity.add_member(:global_secondary_indexes, Shapes::ShapeRef.new(shape: SecondaryIndexesCapacityMap, location_name: "GlobalSecondaryIndexes"))
732
+ ConsumedCapacity.add_member(:vector_indexes, Shapes::ShapeRef.new(shape: VectorIndexesCapacityMap, location_name: "VectorIndexes"))
707
733
  ConsumedCapacity.struct_class = Types::ConsumedCapacity
708
734
 
709
735
  ConsumedCapacityMultiple.member = Shapes::ShapeRef.new(shape: ConsumedCapacity)
@@ -778,11 +804,20 @@ module Aws::DynamoDB
778
804
  CreateTableInput.add_member(:on_demand_throughput, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughput"))
779
805
  CreateTableInput.add_member(:global_table_source_arn, Shapes::ShapeRef.new(shape: TableArn, location_name: "GlobalTableSourceArn"))
780
806
  CreateTableInput.add_member(:global_table_settings_replication_mode, Shapes::ShapeRef.new(shape: GlobalTableSettingsReplicationMode, location_name: "GlobalTableSettingsReplicationMode"))
807
+ CreateTableInput.add_member(:vector_indexes, Shapes::ShapeRef.new(shape: VectorIndexList, location_name: "VectorIndexes"))
781
808
  CreateTableInput.struct_class = Types::CreateTableInput
782
809
 
783
810
  CreateTableOutput.add_member(:table_description, Shapes::ShapeRef.new(shape: TableDescription, location_name: "TableDescription"))
784
811
  CreateTableOutput.struct_class = Types::CreateTableOutput
785
812
 
813
+ CreateVectorIndexAction.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, required: true, location_name: "IndexName"))
814
+ CreateVectorIndexAction.add_member(:vector_attribute, Shapes::ShapeRef.new(shape: VectorAttributeDefinition, required: true, location_name: "VectorAttribute"))
815
+ CreateVectorIndexAction.add_member(:search_schema, Shapes::ShapeRef.new(shape: SearchSchema, location_name: "SearchSchema"))
816
+ CreateVectorIndexAction.add_member(:projection, Shapes::ShapeRef.new(shape: Projection, required: true, location_name: "Projection"))
817
+ CreateVectorIndexAction.add_member(:dimensions, Shapes::ShapeRef.new(shape: PositiveLongObject, required: true, location_name: "Dimensions"))
818
+ CreateVectorIndexAction.add_member(:distance_function, Shapes::ShapeRef.new(shape: VectorDistanceFunction, required: true, location_name: "DistanceFunction"))
819
+ CreateVectorIndexAction.struct_class = Types::CreateVectorIndexAction
820
+
786
821
  CsvHeaderList.member = Shapes::ShapeRef.new(shape: CsvHeader)
787
822
 
788
823
  CsvOptions.add_member(:delimiter, Shapes::ShapeRef.new(shape: CsvDelimiter, location_name: "Delimiter"))
@@ -849,6 +884,9 @@ module Aws::DynamoDB
849
884
  DeleteTableOutput.add_member(:table_description, Shapes::ShapeRef.new(shape: TableDescription, location_name: "TableDescription"))
850
885
  DeleteTableOutput.struct_class = Types::DeleteTableOutput
851
886
 
887
+ DeleteVectorIndexAction.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, required: true, location_name: "IndexName"))
888
+ DeleteVectorIndexAction.struct_class = Types::DeleteVectorIndexAction
889
+
852
890
  DescribeBackupInput.add_member(:backup_arn, Shapes::ShapeRef.new(shape: BackupArn, required: true, location_name: "BackupArn", metadata: {"contextParam" => {"name" => "ResourceArn"}}))
853
891
  DescribeBackupInput.struct_class = Types::DescribeBackupInput
854
892
 
@@ -1677,6 +1715,7 @@ module Aws::DynamoDB
1677
1715
  RestoreTableFromBackupInput.add_member(:provisioned_throughput_override, Shapes::ShapeRef.new(shape: ProvisionedThroughput, location_name: "ProvisionedThroughputOverride"))
1678
1716
  RestoreTableFromBackupInput.add_member(:on_demand_throughput_override, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughputOverride"))
1679
1717
  RestoreTableFromBackupInput.add_member(:sse_specification_override, Shapes::ShapeRef.new(shape: SSESpecification, location_name: "SSESpecificationOverride"))
1718
+ RestoreTableFromBackupInput.add_member(:vector_index_override, Shapes::ShapeRef.new(shape: VectorIndexList, location_name: "VectorIndexOverride"))
1680
1719
  RestoreTableFromBackupInput.struct_class = Types::RestoreTableFromBackupInput
1681
1720
 
1682
1721
  RestoreTableFromBackupOutput.add_member(:table_description, Shapes::ShapeRef.new(shape: TableDescription, location_name: "TableDescription"))
@@ -1693,6 +1732,7 @@ module Aws::DynamoDB
1693
1732
  RestoreTableToPointInTimeInput.add_member(:provisioned_throughput_override, Shapes::ShapeRef.new(shape: ProvisionedThroughput, location_name: "ProvisionedThroughputOverride"))
1694
1733
  RestoreTableToPointInTimeInput.add_member(:on_demand_throughput_override, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughputOverride"))
1695
1734
  RestoreTableToPointInTimeInput.add_member(:sse_specification_override, Shapes::ShapeRef.new(shape: SSESpecification, location_name: "SSESpecificationOverride"))
1735
+ RestoreTableToPointInTimeInput.add_member(:vector_index_override, Shapes::ShapeRef.new(shape: VectorIndexList, location_name: "VectorIndexOverride"))
1696
1736
  RestoreTableToPointInTimeInput.struct_class = Types::RestoreTableToPointInTimeInput
1697
1737
 
1698
1738
  RestoreTableToPointInTimeOutput.add_member(:table_description, Shapes::ShapeRef.new(shape: TableDescription, location_name: "TableDescription"))
@@ -1739,6 +1779,35 @@ module Aws::DynamoDB
1739
1779
  ScanOutput.add_member(:consumed_capacity, Shapes::ShapeRef.new(shape: ConsumedCapacity, location_name: "ConsumedCapacity"))
1740
1780
  ScanOutput.struct_class = Types::ScanOutput
1741
1781
 
1782
+ SearchResultItem.add_member(:item, Shapes::ShapeRef.new(shape: AttributeMap, location_name: "Item"))
1783
+ SearchResultItem.add_member(:score, Shapes::ShapeRef.new(shape: ScoreNumber, location_name: "Score"))
1784
+ SearchResultItem.struct_class = Types::SearchResultItem
1785
+
1786
+ SearchResultList.member = Shapes::ShapeRef.new(shape: SearchResultItem)
1787
+
1788
+ SearchSchema.member = Shapes::ShapeRef.new(shape: SearchSchemaElement)
1789
+
1790
+ SearchSchemaElement.add_member(:attribute_name, Shapes::ShapeRef.new(shape: AttributeName, required: true, location_name: "AttributeName"))
1791
+ SearchSchemaElement.add_member(:search_schema_element_type, Shapes::ShapeRef.new(shape: SearchSchemaElementType, required: true, location_name: "SearchSchemaElementType"))
1792
+ SearchSchemaElement.struct_class = Types::SearchSchemaElement
1793
+
1794
+ SearchVectorList.member = Shapes::ShapeRef.new(shape: AttributeValue)
1795
+
1796
+ SearchVectorsInput.add_member(:table_name, Shapes::ShapeRef.new(shape: TableArn, required: true, location_name: "TableName", metadata: {"contextParam" => {"name" => "ResourceArn"}}))
1797
+ SearchVectorsInput.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, required: true, location_name: "IndexName"))
1798
+ SearchVectorsInput.add_member(:return_consumed_capacity, Shapes::ShapeRef.new(shape: ReturnConsumedCapacity, location_name: "ReturnConsumedCapacity"))
1799
+ SearchVectorsInput.add_member(:expression_attribute_names, Shapes::ShapeRef.new(shape: ExpressionAttributeNameMap, location_name: "ExpressionAttributeNames"))
1800
+ SearchVectorsInput.add_member(:expression_attribute_values, Shapes::ShapeRef.new(shape: ExpressionAttributeValueMap, location_name: "ExpressionAttributeValues"))
1801
+ SearchVectorsInput.add_member(:projection_expression, Shapes::ShapeRef.new(shape: ProjectionExpression, location_name: "ProjectionExpression"))
1802
+ SearchVectorsInput.add_member(:search_vector, Shapes::ShapeRef.new(shape: SearchVectorList, required: true, location_name: "SearchVector"))
1803
+ SearchVectorsInput.add_member(:search_condition_expression, Shapes::ShapeRef.new(shape: String, location_name: "SearchConditionExpression"))
1804
+ SearchVectorsInput.add_member(:top_k, Shapes::ShapeRef.new(shape: TopKInteger, required: true, location_name: "TopK"))
1805
+ SearchVectorsInput.struct_class = Types::SearchVectorsInput
1806
+
1807
+ SearchVectorsOutput.add_member(:consumed_capacity, Shapes::ShapeRef.new(shape: VectorCapacity, location_name: "ConsumedCapacity"))
1808
+ SearchVectorsOutput.add_member(:search_results, Shapes::ShapeRef.new(shape: SearchResultList, location_name: "SearchResults"))
1809
+ SearchVectorsOutput.struct_class = Types::SearchVectorsOutput
1810
+
1742
1811
  SecondaryIndexesCapacityMap.key = Shapes::ShapeRef.new(shape: IndexName)
1743
1812
  SecondaryIndexesCapacityMap.value = Shapes::ShapeRef.new(shape: Capacity)
1744
1813
 
@@ -1759,6 +1828,7 @@ module Aws::DynamoDB
1759
1828
  SourceTableFeatureDetails.add_member(:stream_description, Shapes::ShapeRef.new(shape: StreamSpecification, location_name: "StreamDescription"))
1760
1829
  SourceTableFeatureDetails.add_member(:time_to_live_description, Shapes::ShapeRef.new(shape: TimeToLiveDescription, location_name: "TimeToLiveDescription"))
1761
1830
  SourceTableFeatureDetails.add_member(:sse_description, Shapes::ShapeRef.new(shape: SSEDescription, location_name: "SSEDescription"))
1831
+ SourceTableFeatureDetails.add_member(:vector_indexes, Shapes::ShapeRef.new(shape: VectorIndexes, location_name: "VectorIndexes"))
1762
1832
  SourceTableFeatureDetails.struct_class = Types::SourceTableFeatureDetails
1763
1833
 
1764
1834
  StreamSpecification.add_member(:stream_enabled, Shapes::ShapeRef.new(shape: StreamEnabled, required: true, location_name: "StreamEnabled"))
@@ -1787,6 +1857,7 @@ module Aws::DynamoDB
1787
1857
  TableCreationParameters.add_member(:on_demand_throughput, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughput"))
1788
1858
  TableCreationParameters.add_member(:sse_specification, Shapes::ShapeRef.new(shape: SSESpecification, location_name: "SSESpecification"))
1789
1859
  TableCreationParameters.add_member(:global_secondary_indexes, Shapes::ShapeRef.new(shape: GlobalSecondaryIndexList, location_name: "GlobalSecondaryIndexes"))
1860
+ TableCreationParameters.add_member(:vector_indexes, Shapes::ShapeRef.new(shape: VectorIndexList, location_name: "VectorIndexes"))
1790
1861
  TableCreationParameters.struct_class = Types::TableCreationParameters
1791
1862
 
1792
1863
  TableDescription.add_member(:attribute_definitions, Shapes::ShapeRef.new(shape: AttributeDefinitions, location_name: "AttributeDefinitions"))
@@ -1817,6 +1888,7 @@ module Aws::DynamoDB
1817
1888
  TableDescription.add_member(:on_demand_throughput, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughput"))
1818
1889
  TableDescription.add_member(:warm_throughput, Shapes::ShapeRef.new(shape: TableWarmThroughputDescription, location_name: "WarmThroughput"))
1819
1890
  TableDescription.add_member(:multi_region_consistency, Shapes::ShapeRef.new(shape: MultiRegionConsistency, location_name: "MultiRegionConsistency"))
1891
+ TableDescription.add_member(:vector_indexes, Shapes::ShapeRef.new(shape: VectorIndexDescriptionList, location_name: "VectorIndexes"))
1820
1892
  TableDescription.struct_class = Types::TableDescription
1821
1893
 
1822
1894
  TableInUseException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
@@ -2017,6 +2089,7 @@ module Aws::DynamoDB
2017
2089
  UpdateTableInput.add_member(:on_demand_throughput, Shapes::ShapeRef.new(shape: OnDemandThroughput, location_name: "OnDemandThroughput"))
2018
2090
  UpdateTableInput.add_member(:warm_throughput, Shapes::ShapeRef.new(shape: WarmThroughput, location_name: "WarmThroughput"))
2019
2091
  UpdateTableInput.add_member(:global_table_settings_replication_mode, Shapes::ShapeRef.new(shape: GlobalTableSettingsReplicationMode, location_name: "GlobalTableSettingsReplicationMode"))
2092
+ UpdateTableInput.add_member(:vector_index_updates, Shapes::ShapeRef.new(shape: VectorIndexUpdateList, location_name: "VectorIndexUpdates"))
2020
2093
  UpdateTableInput.struct_class = Types::UpdateTableInput
2021
2094
 
2022
2095
  UpdateTableOutput.add_member(:table_description, Shapes::ShapeRef.new(shape: TableDescription, location_name: "TableDescription"))
@@ -2038,6 +2111,57 @@ module Aws::DynamoDB
2038
2111
  UpdateTimeToLiveOutput.add_member(:time_to_live_specification, Shapes::ShapeRef.new(shape: TimeToLiveSpecification, location_name: "TimeToLiveSpecification"))
2039
2112
  UpdateTimeToLiveOutput.struct_class = Types::UpdateTimeToLiveOutput
2040
2113
 
2114
+ VectorAttributeDefinition.add_member(:attribute_name, Shapes::ShapeRef.new(shape: VectorAttributeName, required: true, location_name: "AttributeName"))
2115
+ VectorAttributeDefinition.struct_class = Types::VectorAttributeDefinition
2116
+
2117
+ VectorCapacity.add_member(:vector_search_request_bytes, Shapes::ShapeRef.new(shape: ConsumedCapacityUnits, location_name: "VectorSearchRequestBytes"))
2118
+ VectorCapacity.add_member(:vector_write_request_bytes, Shapes::ShapeRef.new(shape: ConsumedCapacityUnits, location_name: "VectorWriteRequestBytes"))
2119
+ VectorCapacity.struct_class = Types::VectorCapacity
2120
+
2121
+ VectorIndex.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, required: true, location_name: "IndexName"))
2122
+ VectorIndex.add_member(:vector_attribute, Shapes::ShapeRef.new(shape: VectorAttributeDefinition, required: true, location_name: "VectorAttribute"))
2123
+ VectorIndex.add_member(:search_schema, Shapes::ShapeRef.new(shape: SearchSchema, location_name: "SearchSchema"))
2124
+ VectorIndex.add_member(:projection, Shapes::ShapeRef.new(shape: Projection, required: true, location_name: "Projection"))
2125
+ VectorIndex.add_member(:dimensions, Shapes::ShapeRef.new(shape: PositiveLongObject, required: true, location_name: "Dimensions"))
2126
+ VectorIndex.add_member(:distance_function, Shapes::ShapeRef.new(shape: VectorDistanceFunction, required: true, location_name: "DistanceFunction"))
2127
+ VectorIndex.struct_class = Types::VectorIndex
2128
+
2129
+ VectorIndexDescription.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, location_name: "IndexName"))
2130
+ VectorIndexDescription.add_member(:search_schema, Shapes::ShapeRef.new(shape: SearchSchema, location_name: "SearchSchema"))
2131
+ VectorIndexDescription.add_member(:projection, Shapes::ShapeRef.new(shape: Projection, location_name: "Projection"))
2132
+ VectorIndexDescription.add_member(:vector_attribute, Shapes::ShapeRef.new(shape: VectorAttributeDefinition, location_name: "VectorAttribute"))
2133
+ VectorIndexDescription.add_member(:dimensions, Shapes::ShapeRef.new(shape: PositiveLongObject, location_name: "Dimensions"))
2134
+ VectorIndexDescription.add_member(:distance_function, Shapes::ShapeRef.new(shape: VectorDistanceFunction, location_name: "DistanceFunction"))
2135
+ VectorIndexDescription.add_member(:index_status, Shapes::ShapeRef.new(shape: IndexStatus, location_name: "IndexStatus"))
2136
+ VectorIndexDescription.add_member(:backfilling, Shapes::ShapeRef.new(shape: Backfilling, location_name: "Backfilling"))
2137
+ VectorIndexDescription.add_member(:index_size_bytes, Shapes::ShapeRef.new(shape: LongObject, location_name: "IndexSizeBytes"))
2138
+ VectorIndexDescription.add_member(:item_count, Shapes::ShapeRef.new(shape: LongObject, location_name: "ItemCount"))
2139
+ VectorIndexDescription.add_member(:index_arn, Shapes::ShapeRef.new(shape: String, location_name: "IndexArn"))
2140
+ VectorIndexDescription.struct_class = Types::VectorIndexDescription
2141
+
2142
+ VectorIndexDescriptionList.member = Shapes::ShapeRef.new(shape: VectorIndexDescription)
2143
+
2144
+ VectorIndexInfo.add_member(:index_name, Shapes::ShapeRef.new(shape: IndexName, location_name: "IndexName"))
2145
+ VectorIndexInfo.add_member(:vector_attribute, Shapes::ShapeRef.new(shape: VectorAttributeDefinition, location_name: "VectorAttribute"))
2146
+ VectorIndexInfo.add_member(:search_schema, Shapes::ShapeRef.new(shape: SearchSchema, location_name: "SearchSchema"))
2147
+ VectorIndexInfo.add_member(:projection, Shapes::ShapeRef.new(shape: Projection, location_name: "Projection"))
2148
+ VectorIndexInfo.add_member(:dimensions, Shapes::ShapeRef.new(shape: PositiveLongObject, location_name: "Dimensions"))
2149
+ VectorIndexInfo.add_member(:distance_function, Shapes::ShapeRef.new(shape: VectorDistanceFunction, location_name: "DistanceFunction"))
2150
+ VectorIndexInfo.struct_class = Types::VectorIndexInfo
2151
+
2152
+ VectorIndexList.member = Shapes::ShapeRef.new(shape: VectorIndex)
2153
+
2154
+ VectorIndexUpdate.add_member(:create, Shapes::ShapeRef.new(shape: CreateVectorIndexAction, location_name: "Create"))
2155
+ VectorIndexUpdate.add_member(:delete, Shapes::ShapeRef.new(shape: DeleteVectorIndexAction, location_name: "Delete"))
2156
+ VectorIndexUpdate.struct_class = Types::VectorIndexUpdate
2157
+
2158
+ VectorIndexUpdateList.member = Shapes::ShapeRef.new(shape: VectorIndexUpdate)
2159
+
2160
+ VectorIndexes.member = Shapes::ShapeRef.new(shape: VectorIndexInfo)
2161
+
2162
+ VectorIndexesCapacityMap.key = Shapes::ShapeRef.new(shape: IndexName)
2163
+ VectorIndexesCapacityMap.value = Shapes::ShapeRef.new(shape: VectorCapacity)
2164
+
2041
2165
  WarmThroughput.add_member(:read_units_per_second, Shapes::ShapeRef.new(shape: LongObject, location_name: "ReadUnitsPerSecond"))
2042
2166
  WarmThroughput.add_member(:write_units_per_second, Shapes::ShapeRef.new(shape: LongObject, location_name: "WriteUnitsPerSecond"))
2043
2167
  WarmThroughput.struct_class = Types::WarmThroughput
@@ -2688,6 +2812,18 @@ module Aws::DynamoDB
2688
2812
  )
2689
2813
  end)
2690
2814
 
2815
+ api.add_operation(:search_vectors, Seahorse::Model::Operation.new.tap do |o|
2816
+ o.name = "SearchVectors"
2817
+ o.http_method = "POST"
2818
+ o.http_request_uri = "/"
2819
+ o.input = Shapes::ShapeRef.new(shape: SearchVectorsInput)
2820
+ o.output = Shapes::ShapeRef.new(shape: SearchVectorsOutput)
2821
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2822
+ o.errors << Shapes::ShapeRef.new(shape: RequestLimitExceeded)
2823
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerError)
2824
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2825
+ end)
2826
+
2691
2827
  api.add_operation(:tag_resource, Seahorse::Model::Operation.new.tap do |o|
2692
2828
  o.name = "TagResource"
2693
2829
  o.http_method = "POST"
@@ -50,6 +50,11 @@ module Aws::DynamoDB
50
50
  #
51
51
  # @return [stringArray]
52
52
  #
53
+ # @!attribute is_search_operation
54
+ # Set to true for SearchVectors to route to the Search FQDN
55
+ #
56
+ # @return [boolean]
57
+ #
53
58
  EndpointParameters = Struct.new(
54
59
  :region,
55
60
  :use_dual_stack,
@@ -59,6 +64,7 @@ module Aws::DynamoDB
59
64
  :account_id_endpoint_mode,
60
65
  :resource_arn,
61
66
  :resource_arn_list,
67
+ :is_search_operation,
62
68
  ) do
63
69
  include Aws::Structure
64
70
 
@@ -73,6 +79,7 @@ module Aws::DynamoDB
73
79
  'AccountIdEndpointMode' => :account_id_endpoint_mode,
74
80
  'ResourceArn' => :resource_arn,
75
81
  'ResourceArnList' => :resource_arn_list,
82
+ 'IsSearchOperation' => :is_search_operation,
76
83
  }.freeze
77
84
  end
78
85
 
@@ -87,6 +94,7 @@ module Aws::DynamoDB
87
94
  self[:account_id_endpoint_mode] = options[:account_id_endpoint_mode]
88
95
  self[:resource_arn] = options[:resource_arn]
89
96
  self[:resource_arn_list] = options[:resource_arn_list]
97
+ self[:is_search_operation] = options[:is_search_operation]
90
98
  end
91
99
 
92
100
  def self.create(config, options={})
@@ -10,14 +10,17 @@
10
10
  module Aws::DynamoDB
11
11
  class EndpointProvider
12
12
  def resolve_endpoint(parameters)
13
- if Aws::Endpoints::Matchers.set?(parameters.endpoint) && Aws::Endpoints::Matchers.set?(parameters.region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
13
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint) && Aws::Endpoints::Matchers.set?(parameters.region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region)) && (parsed_endpoint = Aws::Endpoints::Matchers.parse_url(parameters.endpoint))
14
14
  if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
15
15
  raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
16
16
  end
17
17
  if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
18
18
  raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
19
19
  end
20
- if Aws::Endpoints::Matchers.string_equals?(parameters.endpoint, "https://dynamodb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}")
20
+ if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_endpoint, "authority"), "dynamodb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}")
21
+ raise ArgumentError, "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html"
22
+ end
23
+ if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_endpoint, "authority"), "search-dynamodb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}")
21
24
  raise ArgumentError, "Endpoint override is not supported for dual-stack endpoints. Please enable dual-stack functionality by enabling the configuration. For more details, see: https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html"
22
25
  end
23
26
  return Aws::Endpoints::Endpoint.new(url: "#{parameters.endpoint}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
@@ -40,13 +43,16 @@ module Aws::DynamoDB
40
43
  if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
41
44
  raise ArgumentError, "Invalid Configuration: Dualstack and local endpoint are not supported"
42
45
  end
43
- return Aws::Endpoints::Endpoint.new(url: "http://localhost:8000", headers: {}, properties: {"authSchemes" => [{"name" => "sigv4", "signingName" => "dynamodb", "signingRegion" => "us-east-1"}]}, metadata: { account_id_endpoint: false })
46
+ return Aws::Endpoints::Endpoint.new(url: "http://localhost:8000", headers: {}, properties: {"authSchemes" => [{"signingRegion" => "us-east-1", "name" => "sigv4", "signingName" => "dynamodb"}]}, metadata: { account_id_endpoint: false })
44
47
  end
45
48
  if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
46
49
  if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true) && Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"), true)
47
50
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "required")
48
51
  raise ArgumentError, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"
49
52
  end
53
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
54
+ return Aws::Endpoints::Endpoint.new(url: "https://search-dynamodb-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
55
+ end
50
56
  return Aws::Endpoints::Endpoint.new(url: "https://dynamodb-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
51
57
  end
52
58
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
@@ -57,11 +63,17 @@ module Aws::DynamoDB
57
63
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "required")
58
64
  raise ArgumentError, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"
59
65
  end
66
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
67
+ return Aws::Endpoints::Endpoint.new(url: "https://search-dynamodb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
68
+ end
60
69
  return Aws::Endpoints::Endpoint.new(url: "https://dynamodb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
61
70
  end
62
71
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "required")
63
72
  raise ArgumentError, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"
64
73
  end
74
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
75
+ return Aws::Endpoints::Endpoint.new(url: "https://search-dynamodb-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
76
+ end
65
77
  return Aws::Endpoints::Endpoint.new(url: "https://dynamodb-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
66
78
  end
67
79
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
@@ -69,13 +81,22 @@ module Aws::DynamoDB
69
81
  if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
70
82
  if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"), true)
71
83
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.resource_arn) && (parsed_arn = Aws::Endpoints::Matchers.aws_parse_arn(parameters.resource_arn)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "service"), "dynamodb") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), false) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), "#{parameters.region}") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "accountId"), false)
84
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
85
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.search-ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
86
+ end
72
87
  return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
73
88
  end
74
89
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.resource_arn_list) && (first_arn = Aws::Endpoints::Matchers.attr(parameters.resource_arn_list, "[0]")) && (parsed_arn = Aws::Endpoints::Matchers.aws_parse_arn(first_arn)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "service"), "dynamodb") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), false) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), "#{parameters.region}") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "accountId"), false)
90
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
91
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.search-ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
92
+ end
75
93
  return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
76
94
  end
77
95
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.account_id)
78
96
  if Aws::Endpoints::Matchers.valid_host_label?(parameters.account_id, false)
97
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
98
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parameters.account_id}.search-ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: true })
99
+ end
79
100
  return Aws::Endpoints::Endpoint.new(url: "https://#{parameters.account_id}.ddb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: true })
80
101
  end
81
102
  raise ArgumentError, "Credentials-sourced account ID parameter is invalid"
@@ -89,18 +110,30 @@ module Aws::DynamoDB
89
110
  end
90
111
  raise ArgumentError, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"
91
112
  end
113
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
114
+ return Aws::Endpoints::Endpoint.new(url: "https://search-dynamodb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
115
+ end
92
116
  return Aws::Endpoints::Endpoint.new(url: "https://dynamodb.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
93
117
  end
94
118
  raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
95
119
  end
96
120
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.resource_arn) && (parsed_arn = Aws::Endpoints::Matchers.aws_parse_arn(parameters.resource_arn)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "service"), "dynamodb") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), false) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), "#{parameters.region}") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "accountId"), false)
121
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
122
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.search-ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
123
+ end
97
124
  return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
98
125
  end
99
126
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.resource_arn_list) && (first_arn = Aws::Endpoints::Matchers.attr(parameters.resource_arn_list, "[0]")) && (parsed_arn = Aws::Endpoints::Matchers.aws_parse_arn(first_arn)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "service"), "dynamodb") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), false) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(parsed_arn, "region"), "#{parameters.region}") && Aws::Endpoints::Matchers.valid_host_label?(Aws::Endpoints::Matchers.attr(parsed_arn, "accountId"), false)
127
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
128
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.search-ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
129
+ end
100
130
  return Aws::Endpoints::Endpoint.new(url: "https://#{parsed_arn['accountId']}.ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: false })
101
131
  end
102
132
  if Aws::Endpoints::Matchers.set?(parameters.account_id_endpoint_mode) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.string_equals?(parameters.account_id_endpoint_mode, "disabled")) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws") && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)) && Aws::Endpoints::Matchers.set?(parameters.account_id)
103
133
  if Aws::Endpoints::Matchers.valid_host_label?(parameters.account_id, false)
134
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
135
+ return Aws::Endpoints::Endpoint.new(url: "https://#{parameters.account_id}.search-ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: true })
136
+ end
104
137
  return Aws::Endpoints::Endpoint.new(url: "https://#{parameters.account_id}.ddb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"metricValues" => ["O"]}, metadata: { account_id_endpoint: true })
105
138
  end
106
139
  raise ArgumentError, "Credentials-sourced account ID parameter is invalid"
@@ -114,6 +147,9 @@ module Aws::DynamoDB
114
147
  end
115
148
  raise ArgumentError, "Invalid Configuration: AccountIdEndpointMode is required and FIPS is enabled, but FIPS account endpoints are not supported"
116
149
  end
150
+ if Aws::Endpoints::Matchers.set?(parameters.is_search_operation) && Aws::Endpoints::Matchers.boolean_equals?(parameters.is_search_operation, true)
151
+ return Aws::Endpoints::Endpoint.new(url: "https://search-dynamodb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
152
+ end
117
153
  return Aws::Endpoints::Endpoint.new(url: "https://dynamodb.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {}, metadata: { account_id_endpoint: false })
118
154
  end
119
155
  end
@@ -345,6 +345,16 @@ module Aws::DynamoDB
345
345
  end
346
346
  end
347
347
 
348
+ class SearchVectors
349
+ def self.build(context)
350
+ Aws::DynamoDB::EndpointParameters.create(
351
+ context.config,
352
+ resource_arn: context.params[:table_name],
353
+ is_search_operation: true,
354
+ )
355
+ end
356
+ end
357
+
348
358
  class TagResource
349
359
  def self.build(context)
350
360
  Aws::DynamoDB::EndpointParameters.create(
@@ -539,6 +549,8 @@ module Aws::DynamoDB
539
549
  RestoreTableToPointInTime.build(context)
540
550
  when :scan
541
551
  Scan.build(context)
552
+ when :search_vectors
553
+ SearchVectors.build(context)
542
554
  when :tag_resource
543
555
  TagResource.build(context)
544
556
  when :transact_get_items
@@ -335,6 +335,26 @@ module Aws::DynamoDB
335
335
  # },
336
336
  # global_table_source_arn: "TableArn",
337
337
  # global_table_settings_replication_mode: "ENABLED", # accepts ENABLED, DISABLED, ENABLED_WITH_OVERRIDES
338
+ # vector_indexes: [
339
+ # {
340
+ # index_name: "IndexName", # required
341
+ # vector_attribute: { # required
342
+ # attribute_name: "VectorAttributeName", # required
343
+ # },
344
+ # search_schema: [
345
+ # {
346
+ # attribute_name: "AttributeName", # required
347
+ # search_schema_element_type: "HASH", # required, accepts HASH, INLINE_FILTER
348
+ # },
349
+ # ],
350
+ # projection: { # required
351
+ # projection_type: "ALL", # accepts ALL, KEYS_ONLY, INCLUDE
352
+ # non_key_attributes: ["NonKeyAttributeName"],
353
+ # },
354
+ # dimensions: 1, # required
355
+ # distance_function: "COSINE", # required, accepts COSINE, DOT_PRODUCT, EUCLIDEAN
356
+ # },
357
+ # ],
338
358
  # })
339
359
  # @param [Hash] options ({})
340
360
  # @option options [Array<Types::AttributeDefinition>] :attribute_definitions
@@ -579,6 +599,31 @@ module Aws::DynamoDB
579
599
  # multi-account global tables, this parameter is required and the only
580
600
  # supported value is ENABLED. For same-account global tables, this
581
601
  # parameter is set to ENABLED\_WITH\_OVERRIDES.
602
+ # @option options [Array<Types::VectorIndex>] :vector_indexes
603
+ # One or more vector indexes to be created on the table. Each vector
604
+ # index enables similarity search on a vector attribute. Each element in
605
+ # the list consists of:
606
+ #
607
+ # * `IndexName` - The name of the vector index. Must be unique within
608
+ # the table.
609
+ #
610
+ # * `VectorAttribute` - The attribute that contains vector embeddings.
611
+ # If multiple vector indexes reference the same attribute, they must
612
+ # all use the same number of dimensions.
613
+ #
614
+ # * `Dimensions` - The number of dimensions in each vector.
615
+ #
616
+ # * `DistanceFunction` - The distance function used to calculate
617
+ # similarity. Valid values: `COSINE`, `EUCLIDEAN`, `DOT_PRODUCT`.
618
+ #
619
+ # * `Projection` - Specifies attributes that are copied (projected) from
620
+ # the table into the vector index. The total number of projected
621
+ # non-key attributes is shared across the vector attribute (counts as
622
+ # 1) and `INLINE_FILTER` search schema elements (each counts as 1).
623
+ # `HASH` search schema elements do not count toward this limit.
624
+ #
625
+ # * `SearchSchema` - (Optional) Defines the partition key (`HASH`) and
626
+ # inline filter (`INLINE_FILTER`) attributes for the vector index.
582
627
  # @return [Table]
583
628
  def create_table(options = {})
584
629
  resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
@@ -149,7 +149,8 @@ module Aws::DynamoDB
149
149
  data[:table_arn]
150
150
  end
151
151
 
152
- # Unique identifier for the table for which the backup was created.
152
+ # A unique identifier for the table, in UUID format, generated by
153
+ # DynamoDB when the table is created.
153
154
  # @return [String]
154
155
  def table_id
155
156
  data[:table_id]
@@ -431,6 +432,45 @@ module Aws::DynamoDB
431
432
  data[:multi_region_consistency]
432
433
  end
433
434
 
435
+ # The vector indexes, if any, on the table. Each element is composed of:
436
+ #
437
+ # * `IndexName` - The name of the vector index.
438
+ #
439
+ # * `IndexStatus` - The current status of the vector index: `CREATING`,
440
+ # `ACTIVE`, or `DELETING`.
441
+ #
442
+ # * `Backfilling` - Specifies whether the index is currently
443
+ # backfilling. During backfill, `SearchVectors` operations might
444
+ # return incomplete results.
445
+ #
446
+ # * `VectorAttribute` - The attribute that contains vector embeddings.
447
+ #
448
+ # * `Dimensions` - The number of dimensions in each vector.
449
+ #
450
+ # * `DistanceFunction` - The distance function used to calculate
451
+ # similarity (`COSINE`, `EUCLIDEAN`, or `DOT_PRODUCT`).
452
+ #
453
+ # * `SearchSchema` - The partition key and inline filter attributes for
454
+ # the vector index.
455
+ #
456
+ # * `Projection` - Specifies attributes that are copied (projected) from
457
+ # the table into the vector index.
458
+ #
459
+ # * `IndexArn` - The Amazon Resource Name (ARN) that uniquely identifies
460
+ # the index.
461
+ #
462
+ # * `IndexSizeBytes` - The total size of the vector index, in bytes.
463
+ # Amazon DynamoDB updates this value approximately every six hours.
464
+ # Recent changes might not be reflected in this value.
465
+ #
466
+ # * `ItemCount` - The number of items indexed in the vector index.
467
+ # Amazon DynamoDB updates this value approximately every six hours.
468
+ # Recent changes might not be reflected in this value.
469
+ # @return [Array<Types::VectorIndexDescription>]
470
+ def vector_indexes
471
+ data[:vector_indexes]
472
+ end
473
+
434
474
  # @!endgroup
435
475
 
436
476
  # @return [Client]
@@ -953,6 +993,19 @@ module Aws::DynamoDB
953
993
  # data types for those attributes must match those of the schema in the
954
994
  # table's attribute definition.
955
995
  #
996
+ # If the table has vector indexes, the following validations apply to
997
+ # write operations. A violation of any of these constraints results in a
998
+ # `ValidationException`:
999
+ #
1000
+ # * The vector attribute must be a list of numbers with dimensions
1001
+ # matching the index configuration.
1002
+ #
1003
+ # * Vector values must fit in 32-bit IEEE-754 floating point format
1004
+ # (f32).
1005
+ #
1006
+ # * Partition key and inline filter attributes defined in the search
1007
+ # schema must have data types matching the index schema definition.
1008
+ #
956
1009
  # Empty String and Binary attribute values are allowed. Attribute values
957
1010
  # of type String and Binary must have a length greater than zero if the
958
1011
  # attribute is used as a key attribute for a table or index.
@@ -1986,6 +2039,31 @@ module Aws::DynamoDB
1986
2039
  # write_units_per_second: 1,
1987
2040
  # },
1988
2041
  # global_table_settings_replication_mode: "ENABLED", # accepts ENABLED, DISABLED, ENABLED_WITH_OVERRIDES
2042
+ # vector_index_updates: [
2043
+ # {
2044
+ # create: {
2045
+ # index_name: "IndexName", # required
2046
+ # vector_attribute: { # required
2047
+ # attribute_name: "VectorAttributeName", # required
2048
+ # },
2049
+ # search_schema: [
2050
+ # {
2051
+ # attribute_name: "AttributeName", # required
2052
+ # search_schema_element_type: "HASH", # required, accepts HASH, INLINE_FILTER
2053
+ # },
2054
+ # ],
2055
+ # projection: { # required
2056
+ # projection_type: "ALL", # accepts ALL, KEYS_ONLY, INCLUDE
2057
+ # non_key_attributes: ["NonKeyAttributeName"],
2058
+ # },
2059
+ # dimensions: 1, # required
2060
+ # distance_function: "COSINE", # required, accepts COSINE, DOT_PRODUCT, EUCLIDEAN
2061
+ # },
2062
+ # delete: {
2063
+ # index_name: "IndexName", # required
2064
+ # },
2065
+ # },
2066
+ # ],
1989
2067
  # })
1990
2068
  # @param [Hash] options ({})
1991
2069
  # @option options [Array<Types::AttributeDefinition>] :attribute_definitions
@@ -2117,6 +2195,13 @@ module Aws::DynamoDB
2117
2195
  # * `DISABLED`: Remove settings replication on a regional table.
2118
2196
  # Settings replication needs to be defined to ENABLED again in order
2119
2197
  # to create a Multi-Account Global Table using this table.
2198
+ # @option options [Array<Types::VectorIndexUpdate>] :vector_index_updates
2199
+ # A list of vector indexes to be added to or removed from the table. You
2200
+ # can add or remove one vector index for each `UpdateTable` operation.
2201
+ #
2202
+ # To add a vector index, specify `IndexName`, `VectorAttribute`,
2203
+ # `Dimensions`, `DistanceFunction`, and `Projection`. To remove a vector
2204
+ # index, specify only the `IndexName`.
2120
2205
  # @return [Table]
2121
2206
  def update(options = {})
2122
2207
  options = options.merge(table_name: @name)