1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. vertex
  5. AiIndex
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

gcp.vertex.AiIndex

Explore with Pulumi AI

gcp logo
Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi

    A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.

    To get more information about Index, see:

    Example Usage

    Vertex Ai Index

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const bucket = new gcp.storage.Bucket("bucket", {
        name: "vertex-ai-index-test",
        location: "us-central1",
        uniformBucketLevelAccess: true,
    });
    // The sample data comes from the following link:
    // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    const data = new gcp.storage.BucketObject("data", {
        name: "contents/data.json",
        bucket: bucket.name,
        content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
    `,
    });
    const index = new gcp.vertex.AiIndex("index", {
        labels: {
            foo: "bar",
        },
        region: "us-central1",
        displayName: "test-index",
        description: "index for test",
        metadata: {
            contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
            config: {
                dimensions: 2,
                approximateNeighborsCount: 150,
                shardSize: "SHARD_SIZE_SMALL",
                distanceMeasureType: "DOT_PRODUCT_DISTANCE",
                algorithmConfig: {
                    treeAhConfig: {
                        leafNodeEmbeddingCount: 500,
                        leafNodesToSearchPercent: 7,
                    },
                },
            },
        },
        indexUpdateMethod: "BATCH_UPDATE",
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    bucket = gcp.storage.Bucket("bucket",
        name="vertex-ai-index-test",
        location="us-central1",
        uniform_bucket_level_access=True)
    # The sample data comes from the following link:
    # https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    data = gcp.storage.BucketObject("data",
        name="contents/data.json",
        bucket=bucket.name,
        content="""{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
    """)
    index = gcp.vertex.AiIndex("index",
        labels={
            "foo": "bar",
        },
        region="us-central1",
        display_name="test-index",
        description="index for test",
        metadata={
            "contents_delta_uri": bucket.name.apply(lambda name: f"gs://{name}/contents"),
            "config": {
                "dimensions": 2,
                "approximate_neighbors_count": 150,
                "shard_size": "SHARD_SIZE_SMALL",
                "distance_measure_type": "DOT_PRODUCT_DISTANCE",
                "algorithm_config": {
                    "tree_ah_config": {
                        "leaf_node_embedding_count": 500,
                        "leaf_nodes_to_search_percent": 7,
                    },
                },
            },
        },
        index_update_method="BATCH_UPDATE")
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/storage"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
    			Name:                     pulumi.String("vertex-ai-index-test"),
    			Location:                 pulumi.String("us-central1"),
    			UniformBucketLevelAccess: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		// The sample data comes from the following link:
    		// https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    		_, err = storage.NewBucketObject(ctx, "data", &storage.BucketObjectArgs{
    			Name:    pulumi.String("contents/data.json"),
    			Bucket:  bucket.Name,
    			Content: pulumi.String("{\"id\": \"42\", \"embedding\": [0.5, 1.0], \"restricts\": [{\"namespace\": \"class\", \"allow\": [\"cat\", \"pet\"]},{\"namespace\": \"category\", \"allow\": [\"feline\"]}]}\n{\"id\": \"43\", \"embedding\": [0.6, 1.0], \"restricts\": [{\"namespace\": \"class\", \"allow\": [\"dog\", \"pet\"]},{\"namespace\": \"category\", \"allow\": [\"canine\"]}]}\n"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vertex.NewAiIndex(ctx, "index", &vertex.AiIndexArgs{
    			Labels: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    			Region:      pulumi.String("us-central1"),
    			DisplayName: pulumi.String("test-index"),
    			Description: pulumi.String("index for test"),
    			Metadata: &vertex.AiIndexMetadataArgs{
    				ContentsDeltaUri: bucket.Name.ApplyT(func(name string) (string, error) {
    					return fmt.Sprintf("gs://%v/contents", name), nil
    				}).(pulumi.StringOutput),
    				Config: &vertex.AiIndexMetadataConfigArgs{
    					Dimensions:                pulumi.Int(2),
    					ApproximateNeighborsCount: pulumi.Int(150),
    					ShardSize:                 pulumi.String("SHARD_SIZE_SMALL"),
    					DistanceMeasureType:       pulumi.String("DOT_PRODUCT_DISTANCE"),
    					AlgorithmConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigArgs{
    						TreeAhConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs{
    							LeafNodeEmbeddingCount:   pulumi.Int(500),
    							LeafNodesToSearchPercent: pulumi.Int(7),
    						},
    					},
    				},
    			},
    			IndexUpdateMethod: pulumi.String("BATCH_UPDATE"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var bucket = new Gcp.Storage.Bucket("bucket", new()
        {
            Name = "vertex-ai-index-test",
            Location = "us-central1",
            UniformBucketLevelAccess = true,
        });
    
        // The sample data comes from the following link:
        // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
        var data = new Gcp.Storage.BucketObject("data", new()
        {
            Name = "contents/data.json",
            Bucket = bucket.Name,
            Content = @"{""id"": ""42"", ""embedding"": [0.5, 1.0], ""restricts"": [{""namespace"": ""class"", ""allow"": [""cat"", ""pet""]},{""namespace"": ""category"", ""allow"": [""feline""]}]}
    {""id"": ""43"", ""embedding"": [0.6, 1.0], ""restricts"": [{""namespace"": ""class"", ""allow"": [""dog"", ""pet""]},{""namespace"": ""category"", ""allow"": [""canine""]}]}
    ",
        });
    
        var index = new Gcp.Vertex.AiIndex("index", new()
        {
            Labels = 
            {
                { "foo", "bar" },
            },
            Region = "us-central1",
            DisplayName = "test-index",
            Description = "index for test",
            Metadata = new Gcp.Vertex.Inputs.AiIndexMetadataArgs
            {
                ContentsDeltaUri = bucket.Name.Apply(name => $"gs://{name}/contents"),
                Config = new Gcp.Vertex.Inputs.AiIndexMetadataConfigArgs
                {
                    Dimensions = 2,
                    ApproximateNeighborsCount = 150,
                    ShardSize = "SHARD_SIZE_SMALL",
                    DistanceMeasureType = "DOT_PRODUCT_DISTANCE",
                    AlgorithmConfig = new Gcp.Vertex.Inputs.AiIndexMetadataConfigAlgorithmConfigArgs
                    {
                        TreeAhConfig = new Gcp.Vertex.Inputs.AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs
                        {
                            LeafNodeEmbeddingCount = 500,
                            LeafNodesToSearchPercent = 7,
                        },
                    },
                },
            },
            IndexUpdateMethod = "BATCH_UPDATE",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.storage.Bucket;
    import com.pulumi.gcp.storage.BucketArgs;
    import com.pulumi.gcp.storage.BucketObject;
    import com.pulumi.gcp.storage.BucketObjectArgs;
    import com.pulumi.gcp.vertex.AiIndex;
    import com.pulumi.gcp.vertex.AiIndexArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigAlgorithmConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var bucket = new Bucket("bucket", BucketArgs.builder()
                .name("vertex-ai-index-test")
                .location("us-central1")
                .uniformBucketLevelAccess(true)
                .build());
    
            // The sample data comes from the following link:
            // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
            var data = new BucketObject("data", BucketObjectArgs.builder()
                .name("contents/data.json")
                .bucket(bucket.name())
                .content("""
    {"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
                """)
                .build());
    
            var index = new AiIndex("index", AiIndexArgs.builder()
                .labels(Map.of("foo", "bar"))
                .region("us-central1")
                .displayName("test-index")
                .description("index for test")
                .metadata(AiIndexMetadataArgs.builder()
                    .contentsDeltaUri(bucket.name().applyValue(name -> String.format("gs://%s/contents", name)))
                    .config(AiIndexMetadataConfigArgs.builder()
                        .dimensions(2)
                        .approximateNeighborsCount(150)
                        .shardSize("SHARD_SIZE_SMALL")
                        .distanceMeasureType("DOT_PRODUCT_DISTANCE")
                        .algorithmConfig(AiIndexMetadataConfigAlgorithmConfigArgs.builder()
                            .treeAhConfig(AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs.builder()
                                .leafNodeEmbeddingCount(500)
                                .leafNodesToSearchPercent(7)
                                .build())
                            .build())
                        .build())
                    .build())
                .indexUpdateMethod("BATCH_UPDATE")
                .build());
    
        }
    }
    
    resources:
      bucket:
        type: gcp:storage:Bucket
        properties:
          name: vertex-ai-index-test
          location: us-central1
          uniformBucketLevelAccess: true
      # The sample data comes from the following link:
      # https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
      data:
        type: gcp:storage:BucketObject
        properties:
          name: contents/data.json
          bucket: ${bucket.name}
          content: |
            {"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
            {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}        
      index:
        type: gcp:vertex:AiIndex
        properties:
          labels:
            foo: bar
          region: us-central1
          displayName: test-index
          description: index for test
          metadata:
            contentsDeltaUri: gs://${bucket.name}/contents
            config:
              dimensions: 2
              approximateNeighborsCount: 150
              shardSize: SHARD_SIZE_SMALL
              distanceMeasureType: DOT_PRODUCT_DISTANCE
              algorithmConfig:
                treeAhConfig:
                  leafNodeEmbeddingCount: 500
                  leafNodesToSearchPercent: 7
          indexUpdateMethod: BATCH_UPDATE
    

    Vertex Ai Index Streaming

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const bucket = new gcp.storage.Bucket("bucket", {
        name: "vertex-ai-index-test",
        location: "us-central1",
        uniformBucketLevelAccess: true,
    });
    // The sample data comes from the following link:
    // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    const data = new gcp.storage.BucketObject("data", {
        name: "contents/data.json",
        bucket: bucket.name,
        content: `{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
    `,
    });
    const index = new gcp.vertex.AiIndex("index", {
        labels: {
            foo: "bar",
        },
        region: "us-central1",
        displayName: "test-index",
        description: "index for test",
        metadata: {
            contentsDeltaUri: pulumi.interpolate`gs://${bucket.name}/contents`,
            config: {
                dimensions: 2,
                shardSize: "SHARD_SIZE_LARGE",
                distanceMeasureType: "COSINE_DISTANCE",
                featureNormType: "UNIT_L2_NORM",
                algorithmConfig: {
                    bruteForceConfig: {},
                },
            },
        },
        indexUpdateMethod: "STREAM_UPDATE",
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    bucket = gcp.storage.Bucket("bucket",
        name="vertex-ai-index-test",
        location="us-central1",
        uniform_bucket_level_access=True)
    # The sample data comes from the following link:
    # https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    data = gcp.storage.BucketObject("data",
        name="contents/data.json",
        bucket=bucket.name,
        content="""{"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
    """)
    index = gcp.vertex.AiIndex("index",
        labels={
            "foo": "bar",
        },
        region="us-central1",
        display_name="test-index",
        description="index for test",
        metadata={
            "contents_delta_uri": bucket.name.apply(lambda name: f"gs://{name}/contents"),
            "config": {
                "dimensions": 2,
                "shard_size": "SHARD_SIZE_LARGE",
                "distance_measure_type": "COSINE_DISTANCE",
                "feature_norm_type": "UNIT_L2_NORM",
                "algorithm_config": {
                    "brute_force_config": {},
                },
            },
        },
        index_update_method="STREAM_UPDATE")
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/storage"
    	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/vertex"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
    			Name:                     pulumi.String("vertex-ai-index-test"),
    			Location:                 pulumi.String("us-central1"),
    			UniformBucketLevelAccess: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		// The sample data comes from the following link:
    		// https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
    		_, err = storage.NewBucketObject(ctx, "data", &storage.BucketObjectArgs{
    			Name:    pulumi.String("contents/data.json"),
    			Bucket:  bucket.Name,
    			Content: pulumi.String("{\"id\": \"42\", \"embedding\": [0.5, 1.0], \"restricts\": [{\"namespace\": \"class\", \"allow\": [\"cat\", \"pet\"]},{\"namespace\": \"category\", \"allow\": [\"feline\"]}]}\n{\"id\": \"43\", \"embedding\": [0.6, 1.0], \"restricts\": [{\"namespace\": \"class\", \"allow\": [\"dog\", \"pet\"]},{\"namespace\": \"category\", \"allow\": [\"canine\"]}]}\n"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vertex.NewAiIndex(ctx, "index", &vertex.AiIndexArgs{
    			Labels: pulumi.StringMap{
    				"foo": pulumi.String("bar"),
    			},
    			Region:      pulumi.String("us-central1"),
    			DisplayName: pulumi.String("test-index"),
    			Description: pulumi.String("index for test"),
    			Metadata: &vertex.AiIndexMetadataArgs{
    				ContentsDeltaUri: bucket.Name.ApplyT(func(name string) (string, error) {
    					return fmt.Sprintf("gs://%v/contents", name), nil
    				}).(pulumi.StringOutput),
    				Config: &vertex.AiIndexMetadataConfigArgs{
    					Dimensions:          pulumi.Int(2),
    					ShardSize:           pulumi.String("SHARD_SIZE_LARGE"),
    					DistanceMeasureType: pulumi.String("COSINE_DISTANCE"),
    					FeatureNormType:     pulumi.String("UNIT_L2_NORM"),
    					AlgorithmConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigArgs{
    						BruteForceConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigBruteForceConfigArgs{},
    					},
    				},
    			},
    			IndexUpdateMethod: pulumi.String("STREAM_UPDATE"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var bucket = new Gcp.Storage.Bucket("bucket", new()
        {
            Name = "vertex-ai-index-test",
            Location = "us-central1",
            UniformBucketLevelAccess = true,
        });
    
        // The sample data comes from the following link:
        // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
        var data = new Gcp.Storage.BucketObject("data", new()
        {
            Name = "contents/data.json",
            Bucket = bucket.Name,
            Content = @"{""id"": ""42"", ""embedding"": [0.5, 1.0], ""restricts"": [{""namespace"": ""class"", ""allow"": [""cat"", ""pet""]},{""namespace"": ""category"", ""allow"": [""feline""]}]}
    {""id"": ""43"", ""embedding"": [0.6, 1.0], ""restricts"": [{""namespace"": ""class"", ""allow"": [""dog"", ""pet""]},{""namespace"": ""category"", ""allow"": [""canine""]}]}
    ",
        });
    
        var index = new Gcp.Vertex.AiIndex("index", new()
        {
            Labels = 
            {
                { "foo", "bar" },
            },
            Region = "us-central1",
            DisplayName = "test-index",
            Description = "index for test",
            Metadata = new Gcp.Vertex.Inputs.AiIndexMetadataArgs
            {
                ContentsDeltaUri = bucket.Name.Apply(name => $"gs://{name}/contents"),
                Config = new Gcp.Vertex.Inputs.AiIndexMetadataConfigArgs
                {
                    Dimensions = 2,
                    ShardSize = "SHARD_SIZE_LARGE",
                    DistanceMeasureType = "COSINE_DISTANCE",
                    FeatureNormType = "UNIT_L2_NORM",
                    AlgorithmConfig = new Gcp.Vertex.Inputs.AiIndexMetadataConfigAlgorithmConfigArgs
                    {
                        BruteForceConfig = null,
                    },
                },
            },
            IndexUpdateMethod = "STREAM_UPDATE",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.storage.Bucket;
    import com.pulumi.gcp.storage.BucketArgs;
    import com.pulumi.gcp.storage.BucketObject;
    import com.pulumi.gcp.storage.BucketObjectArgs;
    import com.pulumi.gcp.vertex.AiIndex;
    import com.pulumi.gcp.vertex.AiIndexArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigAlgorithmConfigArgs;
    import com.pulumi.gcp.vertex.inputs.AiIndexMetadataConfigAlgorithmConfigBruteForceConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var bucket = new Bucket("bucket", BucketArgs.builder()
                .name("vertex-ai-index-test")
                .location("us-central1")
                .uniformBucketLevelAccess(true)
                .build());
    
            // The sample data comes from the following link:
            // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
            var data = new BucketObject("data", BucketObjectArgs.builder()
                .name("contents/data.json")
                .bucket(bucket.name())
                .content("""
    {"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
    {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}
                """)
                .build());
    
            var index = new AiIndex("index", AiIndexArgs.builder()
                .labels(Map.of("foo", "bar"))
                .region("us-central1")
                .displayName("test-index")
                .description("index for test")
                .metadata(AiIndexMetadataArgs.builder()
                    .contentsDeltaUri(bucket.name().applyValue(name -> String.format("gs://%s/contents", name)))
                    .config(AiIndexMetadataConfigArgs.builder()
                        .dimensions(2)
                        .shardSize("SHARD_SIZE_LARGE")
                        .distanceMeasureType("COSINE_DISTANCE")
                        .featureNormType("UNIT_L2_NORM")
                        .algorithmConfig(AiIndexMetadataConfigAlgorithmConfigArgs.builder()
                            .bruteForceConfig()
                            .build())
                        .build())
                    .build())
                .indexUpdateMethod("STREAM_UPDATE")
                .build());
    
        }
    }
    
    resources:
      bucket:
        type: gcp:storage:Bucket
        properties:
          name: vertex-ai-index-test
          location: us-central1
          uniformBucketLevelAccess: true
      # The sample data comes from the following link:
      # https://cloud.google.com/vertex-ai/docs/matching-engine/filtering#specify-namespaces-tokens
      data:
        type: gcp:storage:BucketObject
        properties:
          name: contents/data.json
          bucket: ${bucket.name}
          content: |
            {"id": "42", "embedding": [0.5, 1.0], "restricts": [{"namespace": "class", "allow": ["cat", "pet"]},{"namespace": "category", "allow": ["feline"]}]}
            {"id": "43", "embedding": [0.6, 1.0], "restricts": [{"namespace": "class", "allow": ["dog", "pet"]},{"namespace": "category", "allow": ["canine"]}]}        
      index:
        type: gcp:vertex:AiIndex
        properties:
          labels:
            foo: bar
          region: us-central1
          displayName: test-index
          description: index for test
          metadata:
            contentsDeltaUri: gs://${bucket.name}/contents
            config:
              dimensions: 2
              shardSize: SHARD_SIZE_LARGE
              distanceMeasureType: COSINE_DISTANCE
              featureNormType: UNIT_L2_NORM
              algorithmConfig:
                bruteForceConfig: {}
          indexUpdateMethod: STREAM_UPDATE
    

    Create AiIndex Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new AiIndex(name: string, args: AiIndexArgs, opts?: CustomResourceOptions);
    @overload
    def AiIndex(resource_name: str,
                args: AiIndexArgs,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def AiIndex(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                display_name: Optional[str] = None,
                description: Optional[str] = None,
                index_update_method: Optional[str] = None,
                labels: Optional[Mapping[str, str]] = None,
                metadata: Optional[AiIndexMetadataArgs] = None,
                project: Optional[str] = None,
                region: Optional[str] = None)
    func NewAiIndex(ctx *Context, name string, args AiIndexArgs, opts ...ResourceOption) (*AiIndex, error)
    public AiIndex(string name, AiIndexArgs args, CustomResourceOptions? opts = null)
    public AiIndex(String name, AiIndexArgs args)
    public AiIndex(String name, AiIndexArgs args, CustomResourceOptions options)
    
    type: gcp:vertex:AiIndex
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args AiIndexArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args AiIndexArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args AiIndexArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args AiIndexArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args AiIndexArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var aiIndexResource = new Gcp.Vertex.AiIndex("aiIndexResource", new()
    {
        DisplayName = "string",
        Description = "string",
        IndexUpdateMethod = "string",
        Labels = 
        {
            { "string", "string" },
        },
        Metadata = new Gcp.Vertex.Inputs.AiIndexMetadataArgs
        {
            ContentsDeltaUri = "string",
            Config = new Gcp.Vertex.Inputs.AiIndexMetadataConfigArgs
            {
                Dimensions = 0,
                AlgorithmConfig = new Gcp.Vertex.Inputs.AiIndexMetadataConfigAlgorithmConfigArgs
                {
                    BruteForceConfig = null,
                    TreeAhConfig = new Gcp.Vertex.Inputs.AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs
                    {
                        LeafNodeEmbeddingCount = 0,
                        LeafNodesToSearchPercent = 0,
                    },
                },
                ApproximateNeighborsCount = 0,
                DistanceMeasureType = "string",
                FeatureNormType = "string",
                ShardSize = "string",
            },
            IsCompleteOverwrite = false,
        },
        Project = "string",
        Region = "string",
    });
    
    example, err := vertex.NewAiIndex(ctx, "aiIndexResource", &vertex.AiIndexArgs{
    	DisplayName:       pulumi.String("string"),
    	Description:       pulumi.String("string"),
    	IndexUpdateMethod: pulumi.String("string"),
    	Labels: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Metadata: &vertex.AiIndexMetadataArgs{
    		ContentsDeltaUri: pulumi.String("string"),
    		Config: &vertex.AiIndexMetadataConfigArgs{
    			Dimensions: pulumi.Int(0),
    			AlgorithmConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigArgs{
    				BruteForceConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigBruteForceConfigArgs{},
    				TreeAhConfig: &vertex.AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs{
    					LeafNodeEmbeddingCount:   pulumi.Int(0),
    					LeafNodesToSearchPercent: pulumi.Int(0),
    				},
    			},
    			ApproximateNeighborsCount: pulumi.Int(0),
    			DistanceMeasureType:       pulumi.String("string"),
    			FeatureNormType:           pulumi.String("string"),
    			ShardSize:                 pulumi.String("string"),
    		},
    		IsCompleteOverwrite: pulumi.Bool(false),
    	},
    	Project: pulumi.String("string"),
    	Region:  pulumi.String("string"),
    })
    
    var aiIndexResource = new AiIndex("aiIndexResource", AiIndexArgs.builder()
        .displayName("string")
        .description("string")
        .indexUpdateMethod("string")
        .labels(Map.of("string", "string"))
        .metadata(AiIndexMetadataArgs.builder()
            .contentsDeltaUri("string")
            .config(AiIndexMetadataConfigArgs.builder()
                .dimensions(0)
                .algorithmConfig(AiIndexMetadataConfigAlgorithmConfigArgs.builder()
                    .bruteForceConfig()
                    .treeAhConfig(AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs.builder()
                        .leafNodeEmbeddingCount(0)
                        .leafNodesToSearchPercent(0)
                        .build())
                    .build())
                .approximateNeighborsCount(0)
                .distanceMeasureType("string")
                .featureNormType("string")
                .shardSize("string")
                .build())
            .isCompleteOverwrite(false)
            .build())
        .project("string")
        .region("string")
        .build());
    
    ai_index_resource = gcp.vertex.AiIndex("aiIndexResource",
        display_name="string",
        description="string",
        index_update_method="string",
        labels={
            "string": "string",
        },
        metadata={
            "contents_delta_uri": "string",
            "config": {
                "dimensions": 0,
                "algorithm_config": {
                    "brute_force_config": {},
                    "tree_ah_config": {
                        "leaf_node_embedding_count": 0,
                        "leaf_nodes_to_search_percent": 0,
                    },
                },
                "approximate_neighbors_count": 0,
                "distance_measure_type": "string",
                "feature_norm_type": "string",
                "shard_size": "string",
            },
            "is_complete_overwrite": False,
        },
        project="string",
        region="string")
    
    const aiIndexResource = new gcp.vertex.AiIndex("aiIndexResource", {
        displayName: "string",
        description: "string",
        indexUpdateMethod: "string",
        labels: {
            string: "string",
        },
        metadata: {
            contentsDeltaUri: "string",
            config: {
                dimensions: 0,
                algorithmConfig: {
                    bruteForceConfig: {},
                    treeAhConfig: {
                        leafNodeEmbeddingCount: 0,
                        leafNodesToSearchPercent: 0,
                    },
                },
                approximateNeighborsCount: 0,
                distanceMeasureType: "string",
                featureNormType: "string",
                shardSize: "string",
            },
            isCompleteOverwrite: false,
        },
        project: "string",
        region: "string",
    });
    
    type: gcp:vertex:AiIndex
    properties:
        description: string
        displayName: string
        indexUpdateMethod: string
        labels:
            string: string
        metadata:
            config:
                algorithmConfig:
                    bruteForceConfig: {}
                    treeAhConfig:
                        leafNodeEmbeddingCount: 0
                        leafNodesToSearchPercent: 0
                approximateNeighborsCount: 0
                dimensions: 0
                distanceMeasureType: string
                featureNormType: string
                shardSize: string
            contentsDeltaUri: string
            isCompleteOverwrite: false
        project: string
        region: string
    

    AiIndex Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The AiIndex resource accepts the following input properties:

    DisplayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    Description string
    The description of the Index.
    IndexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    Labels Dictionary<string, string>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region of the index. eg us-central1
    DisplayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    Description string
    The description of the Index.
    IndexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    Labels map[string]string
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Metadata AiIndexMetadataArgs
    An additional information about the Index Structure is documented below.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    Region string
    The region of the index. eg us-central1
    displayName String
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    description String
    The description of the Index.
    indexUpdateMethod String
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Map<String,String>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region of the index. eg us-central1
    displayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    description string
    The description of the Index.
    indexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels {[key: string]: string}
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region string
    The region of the index. eg us-central1
    display_name str
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    description str
    The description of the Index.
    index_update_method str
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Mapping[str, str]
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadataArgs
    An additional information about the Index Structure is documented below.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region str
    The region of the index. eg us-central1
    displayName String
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    description String
    The description of the Index.
    indexUpdateMethod String
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Map<String>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata Property Map
    An additional information about the Index Structure is documented below.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    region String
    The region of the index. eg us-central1

    Outputs

    All input properties are implicitly available as output properties. Additionally, the AiIndex resource produces the following output properties:

    CreateTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    DeployedIndexes List<AiIndexDeployedIndex>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Used to perform consistent read-modify-write updates.
    Id string
    The provider-assigned unique ID for this managed resource.
    IndexStats List<AiIndexIndexStat>
    Stats of the index resource. Structure is documented below.
    MetadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    Name string
    The resource name of the Index.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    UpdateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    CreateTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    DeployedIndexes []AiIndexDeployedIndex
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Used to perform consistent read-modify-write updates.
    Id string
    The provider-assigned unique ID for this managed resource.
    IndexStats []AiIndexIndexStat
    Stats of the index resource. Structure is documented below.
    MetadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    Name string
    The resource name of the Index.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    UpdateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime String
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes List<AiIndexDeployedIndex>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Used to perform consistent read-modify-write updates.
    id String
    The provider-assigned unique ID for this managed resource.
    indexStats List<AiIndexIndexStat>
    Stats of the index resource. Structure is documented below.
    metadataSchemaUri String
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name String
    The resource name of the Index.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime String
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes AiIndexDeployedIndex[]
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Used to perform consistent read-modify-write updates.
    id string
    The provider-assigned unique ID for this managed resource.
    indexStats AiIndexIndexStat[]
    Stats of the index resource. Structure is documented below.
    metadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name string
    The resource name of the Index.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    create_time str
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployed_indexes Sequence[AiIndexDeployedIndex]
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Used to perform consistent read-modify-write updates.
    id str
    The provider-assigned unique ID for this managed resource.
    index_stats Sequence[AiIndexIndexStat]
    Stats of the index resource. Structure is documented below.
    metadata_schema_uri str
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name str
    The resource name of the Index.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    update_time str
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime String
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes List<Property Map>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Used to perform consistent read-modify-write updates.
    id String
    The provider-assigned unique ID for this managed resource.
    indexStats List<Property Map>
    Stats of the index resource. Structure is documented below.
    metadataSchemaUri String
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name String
    The resource name of the Index.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    updateTime String
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.

    Look up Existing AiIndex Resource

    Get an existing AiIndex resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: AiIndexState, opts?: CustomResourceOptions): AiIndex
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            create_time: Optional[str] = None,
            deployed_indexes: Optional[Sequence[AiIndexDeployedIndexArgs]] = None,
            description: Optional[str] = None,
            display_name: Optional[str] = None,
            effective_labels: Optional[Mapping[str, str]] = None,
            etag: Optional[str] = None,
            index_stats: Optional[Sequence[AiIndexIndexStatArgs]] = None,
            index_update_method: Optional[str] = None,
            labels: Optional[Mapping[str, str]] = None,
            metadata: Optional[AiIndexMetadataArgs] = None,
            metadata_schema_uri: Optional[str] = None,
            name: Optional[str] = None,
            project: Optional[str] = None,
            pulumi_labels: Optional[Mapping[str, str]] = None,
            region: Optional[str] = None,
            update_time: Optional[str] = None) -> AiIndex
    func GetAiIndex(ctx *Context, name string, id IDInput, state *AiIndexState, opts ...ResourceOption) (*AiIndex, error)
    public static AiIndex Get(string name, Input<string> id, AiIndexState? state, CustomResourceOptions? opts = null)
    public static AiIndex get(String name, Output<String> id, AiIndexState state, CustomResourceOptions options)
    Resource lookup is not supported in YAML
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CreateTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    DeployedIndexes List<AiIndexDeployedIndex>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    Description string
    The description of the Index.
    DisplayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    EffectiveLabels Dictionary<string, string>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Used to perform consistent read-modify-write updates.
    IndexStats List<AiIndexIndexStat>
    Stats of the index resource. Structure is documented below.
    IndexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    Labels Dictionary<string, string>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    MetadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    Name string
    The resource name of the Index.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels Dictionary<string, string>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Region string
    The region of the index. eg us-central1
    UpdateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    CreateTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    DeployedIndexes []AiIndexDeployedIndexArgs
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    Description string
    The description of the Index.
    DisplayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    EffectiveLabels map[string]string
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    Etag string
    Used to perform consistent read-modify-write updates.
    IndexStats []AiIndexIndexStatArgs
    Stats of the index resource. Structure is documented below.
    IndexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    Labels map[string]string
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    Metadata AiIndexMetadataArgs
    An additional information about the Index Structure is documented below.
    MetadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    Name string
    The resource name of the Index.
    Project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    PulumiLabels map[string]string
    The combination of labels configured directly on the resource and default labels configured on the provider.
    Region string
    The region of the index. eg us-central1
    UpdateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime String
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes List<AiIndexDeployedIndex>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    description String
    The description of the Index.
    displayName String
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    effectiveLabels Map<String,String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Used to perform consistent read-modify-write updates.
    indexStats List<AiIndexIndexStat>
    Stats of the index resource. Structure is documented below.
    indexUpdateMethod String
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Map<String,String>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    metadataSchemaUri String
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name String
    The resource name of the Index.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String,String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    region String
    The region of the index. eg us-central1
    updateTime String
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime string
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes AiIndexDeployedIndex[]
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    description string
    The description of the Index.
    displayName string
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    effectiveLabels {[key: string]: string}
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag string
    Used to perform consistent read-modify-write updates.
    indexStats AiIndexIndexStat[]
    Stats of the index resource. Structure is documented below.
    indexUpdateMethod string
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels {[key: string]: string}
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadata
    An additional information about the Index Structure is documented below.
    metadataSchemaUri string
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name string
    The resource name of the Index.
    project string
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels {[key: string]: string}
    The combination of labels configured directly on the resource and default labels configured on the provider.
    region string
    The region of the index. eg us-central1
    updateTime string
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    create_time str
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployed_indexes Sequence[AiIndexDeployedIndexArgs]
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    description str
    The description of the Index.
    display_name str
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    effective_labels Mapping[str, str]
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag str
    Used to perform consistent read-modify-write updates.
    index_stats Sequence[AiIndexIndexStatArgs]
    Stats of the index resource. Structure is documented below.
    index_update_method str
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Mapping[str, str]
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata AiIndexMetadataArgs
    An additional information about the Index Structure is documented below.
    metadata_schema_uri str
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name str
    The resource name of the Index.
    project str
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumi_labels Mapping[str, str]
    The combination of labels configured directly on the resource and default labels configured on the provider.
    region str
    The region of the index. eg us-central1
    update_time str
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    createTime String
    The timestamp of when the Index was created in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
    deployedIndexes List<Property Map>
    The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first. Structure is documented below.
    description String
    The description of the Index.
    displayName String
    The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.


    effectiveLabels Map<String>
    All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
    etag String
    Used to perform consistent read-modify-write updates.
    indexStats List<Property Map>
    Stats of the index resource. Structure is documented below.
    indexUpdateMethod String
    The update method to use with this Index. The value must be the followings. If not set, BATCH_UPDATE will be used by default.

    • BATCH_UPDATE: user can call indexes.patch with files on Cloud Storage of datapoints to update.
    • STREAM_UPDATE: user can call indexes.upsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time.
    labels Map<String>
    The labels with user-defined metadata to organize your Indexes. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.
    metadata Property Map
    An additional information about the Index Structure is documented below.
    metadataSchemaUri String
    Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information.
    name String
    The resource name of the Index.
    project String
    The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
    pulumiLabels Map<String>
    The combination of labels configured directly on the resource and default labels configured on the provider.
    region String
    The region of the index. eg us-central1
    updateTime String
    The timestamp of when the Index was last updated in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.

    Supporting Types

    AiIndexDeployedIndex, AiIndexDeployedIndexArgs

    DeployedIndexId string
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    IndexEndpoint string
    (Output) A resource name of the IndexEndpoint.
    DeployedIndexId string
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    IndexEndpoint string
    (Output) A resource name of the IndexEndpoint.
    deployedIndexId String
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    indexEndpoint String
    (Output) A resource name of the IndexEndpoint.
    deployedIndexId string
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    indexEndpoint string
    (Output) A resource name of the IndexEndpoint.
    deployed_index_id str
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    index_endpoint str
    (Output) A resource name of the IndexEndpoint.
    deployedIndexId String
    (Output) The ID of the DeployedIndex in the above IndexEndpoint.
    indexEndpoint String
    (Output) A resource name of the IndexEndpoint.

    AiIndexIndexStat, AiIndexIndexStatArgs

    ShardsCount int
    (Output) The number of shards in the Index.
    VectorsCount string
    (Output) The number of vectors in the Index.
    ShardsCount int
    (Output) The number of shards in the Index.
    VectorsCount string
    (Output) The number of vectors in the Index.
    shardsCount Integer
    (Output) The number of shards in the Index.
    vectorsCount String
    (Output) The number of vectors in the Index.
    shardsCount number
    (Output) The number of shards in the Index.
    vectorsCount string
    (Output) The number of vectors in the Index.
    shards_count int
    (Output) The number of shards in the Index.
    vectors_count str
    (Output) The number of vectors in the Index.
    shardsCount Number
    (Output) The number of shards in the Index.
    vectorsCount String
    (Output) The number of vectors in the Index.

    AiIndexMetadata, AiIndexMetadataArgs

    ContentsDeltaUri string
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    Config AiIndexMetadataConfig
    The configuration of the Matching Engine Index. Structure is documented below.
    IsCompleteOverwrite bool
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.
    ContentsDeltaUri string
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    Config AiIndexMetadataConfig
    The configuration of the Matching Engine Index. Structure is documented below.
    IsCompleteOverwrite bool
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.
    contentsDeltaUri String
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    config AiIndexMetadataConfig
    The configuration of the Matching Engine Index. Structure is documented below.
    isCompleteOverwrite Boolean
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.
    contentsDeltaUri string
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    config AiIndexMetadataConfig
    The configuration of the Matching Engine Index. Structure is documented below.
    isCompleteOverwrite boolean
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.
    contents_delta_uri str
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    config AiIndexMetadataConfig
    The configuration of the Matching Engine Index. Structure is documented below.
    is_complete_overwrite bool
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.
    contentsDeltaUri String
    Allows inserting, updating or deleting the contents of the Matching Engine Index. The string must be a valid Cloud Storage directory path. If this field is set when calling IndexService.UpdateIndex, then no other Index field can be also updated as part of the same call. The expected structure and format of the files this URI points to is described at https://cloud.google.com/vertex-ai/docs/matching-engine/using-matching-engine#input-data-format
    config Property Map
    The configuration of the Matching Engine Index. Structure is documented below.
    isCompleteOverwrite Boolean
    If this field is set together with contentsDeltaUri when calling IndexService.UpdateIndex, then existing content of the Index will be replaced by the data from the contentsDeltaUri.

    AiIndexMetadataConfig, AiIndexMetadataConfigArgs

    Dimensions int
    The number of dimensions of the input vectors.
    AlgorithmConfig AiIndexMetadataConfigAlgorithmConfig
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    ApproximateNeighborsCount int
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    DistanceMeasureType string
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    FeatureNormType string
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    ShardSize string
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)
    Dimensions int
    The number of dimensions of the input vectors.
    AlgorithmConfig AiIndexMetadataConfigAlgorithmConfig
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    ApproximateNeighborsCount int
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    DistanceMeasureType string
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    FeatureNormType string
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    ShardSize string
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)
    dimensions Integer
    The number of dimensions of the input vectors.
    algorithmConfig AiIndexMetadataConfigAlgorithmConfig
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    approximateNeighborsCount Integer
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    distanceMeasureType String
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    featureNormType String
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    shardSize String
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)
    dimensions number
    The number of dimensions of the input vectors.
    algorithmConfig AiIndexMetadataConfigAlgorithmConfig
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    approximateNeighborsCount number
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    distanceMeasureType string
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    featureNormType string
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    shardSize string
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)
    dimensions int
    The number of dimensions of the input vectors.
    algorithm_config AiIndexMetadataConfigAlgorithmConfig
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    approximate_neighbors_count int
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    distance_measure_type str
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    feature_norm_type str
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    shard_size str
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)
    dimensions Number
    The number of dimensions of the input vectors.
    algorithmConfig Property Map
    The configuration with regard to the algorithms used for efficient search. Structure is documented below.
    approximateNeighborsCount Number
    The default number of neighbors to find via approximate search before exact reordering is performed. Exact reordering is a procedure where results returned by an approximate search algorithm are reordered via a more expensive distance computation. Required if tree-AH algorithm is used.
    distanceMeasureType String
    The distance measure used in nearest neighbor search. The value must be one of the followings:

    • SQUARED_L2_DISTANCE: Euclidean (L_2) Distance
    • L1_DISTANCE: Manhattan (L_1) Distance
    • COSINE_DISTANCE: Cosine Distance. Defined as 1 - cosine similarity.
    • DOT_PRODUCT_DISTANCE: Dot Product Distance. Defined as a negative of the dot product
    featureNormType String
    Type of normalization to be carried out on each vector. The value must be one of the followings:

    • UNIT_L2_NORM: Unit L2 normalization type
    • NONE: No normalization type is specified.
    shardSize String
    Index data is split into equal parts to be processed. These are called "shards". The shard size must be specified when creating an index. The value must be one of the followings:

    • SHARD_SIZE_SMALL: Small (2GB)
    • SHARD_SIZE_MEDIUM: Medium (20GB)
    • SHARD_SIZE_LARGE: Large (50GB)

    AiIndexMetadataConfigAlgorithmConfig, AiIndexMetadataConfigAlgorithmConfigArgs

    BruteForceConfig AiIndexMetadataConfigAlgorithmConfigBruteForceConfig
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    TreeAhConfig AiIndexMetadataConfigAlgorithmConfigTreeAhConfig
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.
    BruteForceConfig AiIndexMetadataConfigAlgorithmConfigBruteForceConfig
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    TreeAhConfig AiIndexMetadataConfigAlgorithmConfigTreeAhConfig
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.
    bruteForceConfig AiIndexMetadataConfigAlgorithmConfigBruteForceConfig
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    treeAhConfig AiIndexMetadataConfigAlgorithmConfigTreeAhConfig
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.
    bruteForceConfig AiIndexMetadataConfigAlgorithmConfigBruteForceConfig
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    treeAhConfig AiIndexMetadataConfigAlgorithmConfigTreeAhConfig
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.
    brute_force_config AiIndexMetadataConfigAlgorithmConfigBruteForceConfig
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    tree_ah_config AiIndexMetadataConfigAlgorithmConfigTreeAhConfig
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.
    bruteForceConfig Property Map
    Configuration options for using brute force search, which simply implements the standard linear search in the database for each query.
    treeAhConfig Property Map
    Configuration options for using the tree-AH algorithm (Shallow tree + Asymmetric Hashing). Please refer to this paper for more details: https://arxiv.org/abs/1908.10396 Structure is documented below.

    AiIndexMetadataConfigAlgorithmConfigTreeAhConfig, AiIndexMetadataConfigAlgorithmConfigTreeAhConfigArgs

    LeafNodeEmbeddingCount int
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    LeafNodesToSearchPercent int
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.
    LeafNodeEmbeddingCount int
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    LeafNodesToSearchPercent int
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.
    leafNodeEmbeddingCount Integer
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    leafNodesToSearchPercent Integer
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.
    leafNodeEmbeddingCount number
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    leafNodesToSearchPercent number
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.
    leaf_node_embedding_count int
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    leaf_nodes_to_search_percent int
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.
    leafNodeEmbeddingCount Number
    Number of embeddings on each leaf node. The default value is 1000 if not set.
    leafNodesToSearchPercent Number
    The default percentage of leaf nodes that any query may be searched. Must be in range 1-100, inclusive. The default value is 10 (means 10%) if not set.

    Import

    Index can be imported using any of these accepted formats:

    • projects/{{project}}/locations/{{region}}/indexes/{{name}}

    • {{project}}/{{region}}/{{name}}

    • {{region}}/{{name}}

    • {{name}}

    When using the pulumi import command, Index can be imported using one of the formats above. For example:

    $ pulumi import gcp:vertex/aiIndex:AiIndex default projects/{{project}}/locations/{{region}}/indexes/{{name}}
    
    $ pulumi import gcp:vertex/aiIndex:AiIndex default {{project}}/{{region}}/{{name}}
    
    $ pulumi import gcp:vertex/aiIndex:AiIndex default {{region}}/{{name}}
    
    $ pulumi import gcp:vertex/aiIndex:AiIndex default {{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v8.9.3 published on Monday, Nov 18, 2024 by Pulumi