# Index for SMELabel search
resource "opensearch_index_template" "SMELabel" {
  name = "sme_label"
  body = file("sme_label_template.json")
}

resource "opensearch_index" "sme_label_v01" {
  
  name                   = "sme_label.v01"
  number_of_replicas     = "1"
  number_of_shards       = 3
  refresh_interval       = "60s"
  routing_partition_size = "1"
  force_destroy          = "true"

  depends_on = [ opensearch_index_template.SMELabel ]


  # This is a workaround to prevent the index from being replaced when the resource is updated
  # mappings are managed at the index template level
  # https://github.com/opensearch-project/terraform-provider-opensearch/issues/175
  lifecycle {
    ignore_changes = [ mappings ]
  }
} 


resource "opensearch_index" "sme_label_v02" {
  name                   = "sme_label.v02"
  aliases                = jsonencode({
    "sme_label_write": {
      "is_write_index": true
    },
    "sme_label_read": {
      "is_write_index": false
    }
  })
  number_of_replicas     = "1"
  number_of_shards       = 3
  refresh_interval       = "60s"
  routing_partition_size = "1"
  force_destroy          = "true"

  depends_on = [ opensearch_index_template.SMELabel ]

  # This is a workaround to prevent the index from being replaced when the resource is updated
  # mappings are managed at the index template level
  # https://github.com/opensearch-project/terraform-provider-opensearch/issues/175
  lifecycle {
    ignore_changes = [ mappings ]
  }
} 