Skip to content

/AWS1/IF_S3V=>CREATEINDEX()

About CreateIndex

Creates a vector index within a vector bucket. To specify the vector bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).

Permissions

You must have the s3vectors:CreateIndex permission to use this operation.

You must have the s3vectors:TagResource permission in addition to s3vectors:CreateIndex permission to create a vector index with tags.

Method Signature

METHODS /AWS1/IF_S3V~CREATEINDEX
  IMPORTING
    !IV_VECTORBUCKETNAME TYPE /AWS1/S3VVECTORBUCKETNAME OPTIONAL
    !IV_VECTORBUCKETARN TYPE /AWS1/S3VVECTORBUCKETARN OPTIONAL
    !IV_INDEXNAME TYPE /AWS1/S3VINDEXNAME OPTIONAL
    !IV_DATATYPE TYPE /AWS1/S3VDATATYPE OPTIONAL
    !IV_DIMENSION TYPE /AWS1/S3VDIMENSION OPTIONAL
    !IV_DISTANCEMETRIC TYPE /AWS1/S3VDISTANCEMETRIC OPTIONAL
    !IO_METADATACONFIGURATION TYPE REF TO /AWS1/CL_S3VMETADATACONF OPTIONAL
    !IO_ENCRYPTIONCONFIGURATION TYPE REF TO /AWS1/CL_S3VENCRYPTIONCONF OPTIONAL
    !IT_TAGS TYPE /AWS1/CL_S3VTAGSMAP_W=>TT_TAGSMAP OPTIONAL
  RETURNING
    VALUE(OO_OUTPUT) TYPE REF TO /aws1/cl_s3vcreateindexoutput
  RAISING
    /AWS1/CX_S3VACCESSDENIEDEX
    /AWS1/CX_S3VINTERNALSERVEREX
    /AWS1/CX_S3VREQUESTTIMEOUTEX
    /AWS1/CX_S3VTOOMANYREQUESTSEX
    /AWS1/CX_S3VVALIDATIONEX
    /AWS1/CX_S3VCONFLICTEXCEPTION
    /AWS1/CX_S3VNOTFOUNDEXCEPTION
    /AWS1/CX_S3VSERVICEQUOTAEXCDEX
    /AWS1/CX_S3VSERVICEUNAVAILEX
    /AWS1/CX_S3VCLIENTEXC
    /AWS1/CX_S3VSERVEREXC
    /AWS1/CX_RT_TECHNICAL_GENERIC
    /AWS1/CX_RT_SERVICE_GENERIC.

IMPORTING

Required arguments:

iv_indexname TYPE /AWS1/S3VINDEXNAME /AWS1/S3VINDEXNAME

The name of the vector index to create.

iv_datatype TYPE /AWS1/S3VDATATYPE /AWS1/S3VDATATYPE

The data type of the vectors to be inserted into the vector index.

iv_dimension TYPE /AWS1/S3VDIMENSION /AWS1/S3VDIMENSION

The dimensions of the vectors to be inserted into the vector index.

iv_distancemetric TYPE /AWS1/S3VDISTANCEMETRIC /AWS1/S3VDISTANCEMETRIC

The distance metric to be used for similarity search.

Optional arguments:

iv_vectorbucketname TYPE /AWS1/S3VVECTORBUCKETNAME /AWS1/S3VVECTORBUCKETNAME

The name of the vector bucket to create the vector index in.

iv_vectorbucketarn TYPE /AWS1/S3VVECTORBUCKETARN /AWS1/S3VVECTORBUCKETARN

The Amazon Resource Name (ARN) of the vector bucket to create the vector index in.

io_metadataconfiguration TYPE REF TO /AWS1/CL_S3VMETADATACONF /AWS1/CL_S3VMETADATACONF

The metadata configuration for the vector index.

io_encryptionconfiguration TYPE REF TO /AWS1/CL_S3VENCRYPTIONCONF /AWS1/CL_S3VENCRYPTIONCONF

The encryption configuration for a vector index. By default, if you don't specify, all new vectors in the vector index will use the encryption configuration of the vector bucket.

it_tags TYPE /AWS1/CL_S3VTAGSMAP_W=>TT_TAGSMAP TT_TAGSMAP

An array of user-defined tags that you would like to apply to the vector index that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track costs, and control access to resources. For more information, see Tagging for cost allocation or attribute-based access control (ABAC).

You must have the s3vectors:TagResource permission in addition to s3vectors:CreateIndex permission to create a vector index with tags.

RETURNING

oo_output TYPE REF TO /aws1/cl_s3vcreateindexoutput /AWS1/CL_S3VCREATEINDEXOUTPUT

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->createindex(
  io_encryptionconfiguration = new /aws1/cl_s3vencryptionconf(
    iv_kmskeyarn = |string|
    iv_ssetype = |string|
  )
  io_metadataconfiguration = new /aws1/cl_s3vmetadataconf(
    it_nonfilterablemetadatakeys = VALUE /aws1/cl_s3vnonfiltblmetkeys_w=>tt_nonfilterablemetadatakeys(
      ( new /aws1/cl_s3vnonfiltblmetkeys_w( |string| ) )
    )
  )
  it_tags = VALUE /aws1/cl_s3vtagsmap_w=>tt_tagsmap(
    (
      VALUE /aws1/cl_s3vtagsmap_w=>ts_tagsmap_maprow(
        value = new /aws1/cl_s3vtagsmap_w( |string| )
        key = |string|
      )
    )
  )
  iv_datatype = |string|
  iv_dimension = 123
  iv_distancemetric = |string|
  iv_indexname = |string|
  iv_vectorbucketarn = |string|
  iv_vectorbucketname = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lv_indexarn = lo_result->get_indexarn( ).
ENDIF.