1 /* 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"). 5 * You may not use this file except in compliance with the License. 6 * A copy of the License is located at 7 * 8 * http://aws.amazon.com/apache2.0 9 * 10 * or in the "license" file accompanying this file. This file is distributed 11 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 12 * express or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 16 package software.amazon.awssdk.enhanced.dynamodb.mapper.annotations; 17 18 import java.lang.annotation.ElementType; 19 import java.lang.annotation.Retention; 20 import java.lang.annotation.RetentionPolicy; 21 import java.lang.annotation.Target; 22 import software.amazon.awssdk.annotations.SdkPublicApi; 23 import software.amazon.awssdk.enhanced.dynamodb.internal.mapper.BeanTableSchemaAttributeTags; 24 25 /** 26 * Denotes a partition key for a global secondary index. 27 * 28 * <p>You must also specify at least one index name. 29 * 30 * <p>The index name will be used if a table is created from this bean. For data-oriented operations like reads and writes, this 31 * name does not need to match the service-side name of the index. 32 */ 33 @SdkPublicApi 34 @Target({ElementType.METHOD}) 35 @Retention(RetentionPolicy.RUNTIME) 36 @BeanTableSchemaAttributeTag(BeanTableSchemaAttributeTags.class) 37 public @interface DynamoDbSecondaryPartitionKey { 38 /** 39 * The names of one or more global secondary indices that this partition key should participate in. 40 */ indexNames()41 String[] indexNames(); 42 } 43