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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-dynamodb/client.rb +533 -8
- data/lib/aws-sdk-dynamodb/client_api.rb +136 -0
- data/lib/aws-sdk-dynamodb/endpoint_parameters.rb +8 -0
- data/lib/aws-sdk-dynamodb/endpoint_provider.rb +39 -3
- data/lib/aws-sdk-dynamodb/endpoints.rb +12 -0
- data/lib/aws-sdk-dynamodb/resource.rb +45 -0
- data/lib/aws-sdk-dynamodb/table.rb +86 -1
- data/lib/aws-sdk-dynamodb/types.rb +632 -12
- data/lib/aws-sdk-dynamodb.rb +1 -1
- data/sig/client.rbs +60 -4
- data/sig/params.rbs +19 -0
- data/sig/resource.rbs +21 -1
- data/sig/table.rbs +29 -1
- data/sig/types.rbs +106 -0
- metadata +1 -1
|
@@ -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?(
|
|
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" => [{"
|
|
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
|
-
#
|
|
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)
|