Skip to content

Conversation

@marvinbuss
Copy link
Contributor

Proposed changes:

  • Add container app
  • Add key vault secrets
  • Lint

@marvinbuss marvinbuss self-assigned this Nov 6, 2025
@marvinbuss marvinbuss added the enhancement New feature or request label Nov 6, 2025
@github-actions
Copy link

github-actions bot commented Nov 6, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

Copy link
Contributor Author

@marvinbuss marvinbuss left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 0s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m
 �[36m<=�[0m read (data resources)�[0m

Terraform will perform the following actions:

�[1m  # data.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_container_app_environment" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # azapi_resource.subnet_container_app�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azapi_resource" "subnet_container_app" {
      �[32m+�[0m�[0m body                      = {
          �[32m+�[0m�[0m properties = {
              �[32m+�[0m�[0m addressPrefix                     = "10.3.1.0/26"
              �[32m+�[0m�[0m delegations                       = [
                  �[32m+�[0m�[0m {
                      �[32m+�[0m�[0m name       = "ContainerAppDelegation"
                      �[32m+�[0m�[0m properties = {
                          �[32m+�[0m�[0m serviceName = "Microsoft.App/environments"
                        }
                    },
                ]
              �[32m+�[0m�[0m ipAllocations                     = []
              �[32m+�[0m�[0m networkSecurityGroup              = {
                  �[32m+�[0m�[0m id = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001"
                }
              �[32m+�[0m�[0m privateEndpointNetworkPolicies    = "Enabled"
              �[32m+�[0m�[0m privateLinkServiceNetworkPolicies = "Enabled"
              �[32m+�[0m�[0m routeTable                        = {
                  �[32m+�[0m�[0m id = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001"
                }
              �[32m+�[0m�[0m serviceEndpointPolicies           = []
              �[32m+�[0m�[0m serviceEndpoints                  = []
            }
        }
      �[32m+�[0m�[0m id                        = (known after apply)
      �[32m+�[0m�[0m ignore_casing             = false
      �[32m+�[0m�[0m ignore_missing_property   = true
      �[32m+�[0m�[0m ignore_null_property      = false
      �[32m+�[0m�[0m name                      = "ConAppEnvironmentSubnet"
      �[32m+�[0m�[0m output                    = (known after apply)
      �[32m+�[0m�[0m parent_id                 = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001"
      �[32m+�[0m�[0m schema_validation_enabled = true
      �[32m+�[0m�[0m sensitive_body            = (write-only attribute)
      �[32m+�[0m�[0m type                      = "Microsoft.Network/virtualNetworks/subnets@2024-01-01"
    }

�[1m  # azapi_resource.subnet_private_endpoints�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azapi_resource" "subnet_private_endpoints" {
      �[32m+�[0m�[0m body                      = {
          �[32m+�[0m�[0m properties = {
              �[32m+�[0m�[0m addressPrefix                     = "10.3.1.64/26"
              �[32m+�[0m�[0m delegations                       = []
              �[32m+�[0m�[0m ipAllocations                     = []
              �[32m+�[0m�[0m networkSecurityGroup              = {
                  �[32m+�[0m�[0m id = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001"
                }
              �[32m+�[0m�[0m privateEndpointNetworkPolicies    = "Enabled"
              �[32m+�[0m�[0m privateLinkServiceNetworkPolicies = "Enabled"
              �[32m+�[0m�[0m routeTable                        = {
                  �[32m+�[0m�[0m id = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001"
                }
              �[32m+�[0m�[0m serviceEndpointPolicies           = []
              �[32m+�[0m�[0m serviceEndpoints                  = []
            }
        }
      �[32m+�[0m�[0m id                        = (known after apply)
      �[32m+�[0m�[0m ignore_casing             = false
      �[32m+�[0m�[0m ignore_missing_property   = true
      �[32m+�[0m�[0m ignore_null_property      = false
      �[32m+�[0m�[0m name                      = "ConAppPrivateEndpointSubnet"
      �[32m+�[0m�[0m output                    = (known after apply)
      �[32m+�[0m�[0m parent_id                 = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001"
      �[32m+�[0m�[0m schema_validation_enabled = true
      �[32m+�[0m�[0m sensitive_body            = (write-only attribute)
      �[32m+�[0m�[0m type                      = "Microsoft.Network/virtualNetworks/subnets@2024-01-01"
    }

�[1m  # azurerm_container_app.container_app_backend�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
      �[32m+�[0m�[0m container_app_environment_id  = (known after apply)
      �[32m+�[0m�[0m custom_domain_verification_id = (sensitive value)
      �[32m+�[0m�[0m id                            = (known after apply)
      �[32m+�[0m�[0m latest_revision_fqdn          = (known after apply)
      �[32m+�[0m�[0m latest_revision_name          = (known after apply)
      �[32m+�[0m�[0m location                      = (known after apply)
      �[32m+�[0m�[0m name                          = "voi-aig-dev-ca001-backend"
      �[32m+�[0m�[0m outbound_ip_addresses         = (known after apply)
      �[32m+�[0m�[0m resource_group_name           = "voi-aig-dev-rg"
      �[32m+�[0m�[0m revision_mode                 = "Single"
      �[32m+�[0m�[0m tags                          = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m workload_profile_name         = "Consumption"

      �[32m+�[0m�[0m identity {
          �[32m+�[0m�[0m identity_ids = (known after apply)
          �[32m+�[0m�[0m principal_id = (known after apply)
          �[32m+�[0m�[0m tenant_id    = (known after apply)
          �[32m+�[0m�[0m type         = "UserAssigned"
        }

      �[32m+�[0m�[0m ingress {
          �[32m+�[0m�[0m allow_insecure_connections = false
          �[32m+�[0m�[0m client_certificate_mode    = "accept"
          �[32m+�[0m�[0m custom_domain              = (known after apply)
          �[32m+�[0m�[0m external_enabled           = true
          �[32m+�[0m�[0m fqdn                       = (known after apply)
          �[32m+�[0m�[0m target_port                = 80
          �[32m+�[0m�[0m transport                  = "auto"

          �[32m+�[0m�[0m traffic_weight {
              �[32m+�[0m�[0m latest_revision = true
              �[32m+�[0m�[0m percentage      = 100
            }
        }

      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }

      �[32m+�[0m�[0m template {
          �[32m+�[0m�[0m max_replicas                     = 10
          �[32m+�[0m�[0m min_replicas                     = 1
          �[32m+�[0m�[0m revision_suffix                  = "real-time-backend"
          �[32m+�[0m�[0m termination_grace_period_seconds = 10

          �[32m+�[0m�[0m container {
              �[32m+�[0m�[0m cpu               = 0.5
              �[32m+�[0m�[0m ephemeral_storage = (known after apply)
              �[32m+�[0m�[0m image             = (sensitive value)
              �[32m+�[0m�[0m memory            = "1.0Gi"
              �[32m+�[0m�[0m name              = "real-time-backend"

              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "ACS_CONNECTION_STRING"
                  �[32m+�[0m�[0m secret_name = "acs-connection-string"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "APPLICATIONINSIGHTS_CONNECTION_STRING"
                  �[32m+�[0m�[0m secret_name = "ai-connection-string"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name  = "AZURE_OPENAI_ENDPOINT"
                  �[32m+�[0m�[0m value = (known after apply)
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "AZURE_OPENAI_API_KEY"
                  �[32m+�[0m�[0m secret_name = "aoai-primary-access-key"
                }
            }

          �[32m+�[0m�[0m http_scale_rule {
              �[32m+�[0m�[0m concurrent_requests = "50"
              �[32m+�[0m�[0m name                = "http-scale-rule"
            }
        }
    }

�[1m  # azurerm_container_app_environment.container_app_environment�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_container_app_environment" "container_app_environment" {
      �[32m+�[0m�[0m custom_domain_verification_id               = (known after apply)
      �[32m+�[0m�[0m dapr_application_insights_connection_string = (sensitive value)
      �[32m+�[0m�[0m default_domain                              = (known after apply)
      �[32m+�[0m�[0m docker_bridge_cidr                          = (known after apply)
      �[32m+�[0m�[0m id                                          = (known after apply)
      �[32m+�[0m�[0m infrastructure_resource_group_name          = "voi-aig-dev-cae001-rg"
      �[32m+�[0m�[0m infrastructure_subnet_id                    = (known after apply)
      �[32m+�[0m�[0m internal_load_balancer_enabled              = true
      �[32m+�[0m�[0m location                                    = "northeurope"
      �[32m+�[0m�[0m logs_destination                            = "azure-monitor"
      �[32m+�[0m�[0m mutual_tls_enabled                          = false
      �[32m+�[0m�[0m name                                        = "voi-aig-dev-cae001"
      �[32m+�[0m�[0m platform_reserved_cidr                      = (known after apply)
      �[32m+�[0m�[0m platform_reserved_dns_ip_address            = (known after apply)
      �[32m+�[0m�[0m public_network_access                       = (known after apply)
      �[32m+�[0m�[0m resource_group_name                         = "voi-aig-dev-rg"
      �[32m+�[0m�[0m static_ip_address                           = (known after apply)
      �[32m+�[0m�[0m tags                                        = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m zone_redundancy_enabled                     = false

      �[32m+�[0m�[0m workload_profile {
          �[32m+�[0m�[0m name                  = "Consumption"
          �[32m+�[0m�[0m workload_profile_type = "Consumption"
        }
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_aoai_primary_access_key" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = (known after apply)
      �[32m+�[0m�[0m name                    = "aoai-primary-access-key"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_application_insights_connection_string�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_application_insights_connection_string" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = (known after apply)
      �[32m+�[0m�[0m name                    = "ai-connection-string"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_communication_service_primary_connection_string" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = (known after apply)
      �[32m+�[0m�[0m name                    = "acs-connection-string"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1m  # azurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_container_app_environment" {
      �[32m+�[0m�[0m id                             = (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
      �[32m+�[0m�[0m log_analytics_workspace_id     = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
      �[32m+�[0m�[0m name                           = "applicationLogs-0"
      �[32m+�[0m�[0m target_resource_id             = (known after apply)

      �[32m+�[0m�[0m enabled_log (known after apply)

      �[32m+�[0m�[0m enabled_metric (known after apply)

      �[32m+�[0m�[0m metric (known after apply)
    }

�[1m  # azurerm_resource_group.resource_group�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_resource_group" "resource_group" {
      �[32m+�[0m�[0m id       = (known after apply)
      �[32m+�[0m�[0m location = "northeurope"
      �[32m+�[0m�[0m name     = "voi-aig-dev-rg"
      �[32m+�[0m�[0m tags     = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
    }

�[1m  # azurerm_role_assignment.current_role_assignment_key_vault_secrets_officer�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_role_assignment" "current_role_assignment_key_vault_secrets_officer" {
      �[32m+�[0m�[0m condition_version                = (known after apply)
      �[32m+�[0m�[0m id                               = (known after apply)
      �[32m+�[0m�[0m name                             = (known after apply)
      �[32m+�[0m�[0m principal_id                     = "973df2ad-4e5e-4e8b-9df6-17f61e9efd55"
      �[32m+�[0m�[0m principal_type                   = (known after apply)
      �[32m+�[0m�[0m role_definition_id               = (known after apply)
      �[32m+�[0m�[0m role_definition_name             = "Key Vault Secrets Officer"
      �[32m+�[0m�[0m scope                            = (known after apply)
      �[32m+�[0m�[0m skip_service_principal_aad_check = (known after apply)
    }

�[1m  # azurerm_role_assignment.uai_role_assignment_key_vault_secrets_user�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_role_assignment" "uai_role_assignment_key_vault_secrets_user" {
      �[32m+�[0m�[0m condition_version                = (known after apply)
      �[32m+�[0m�[0m id                               = (known after apply)
      �[32m+�[0m�[0m name                             = (known after apply)
      �[32m+�[0m�[0m principal_id                     = (known after apply)
      �[32m+�[0m�[0m principal_type                   = (known after apply)
      �[32m+�[0m�[0m role_definition_id               = (known after apply)
      �[32m+�[0m�[0m role_definition_name             = "Key Vault Secrets User"
      �[32m+�[0m�[0m scope                            = (known after apply)
      �[32m+�[0m�[0m skip_service_principal_aad_check = (known after apply)
    }

�[1m  # module.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_cognitive_account" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # module.ai_service.azurerm_cognitive_account.cognitive_account�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_cognitive_account" "cognitive_account" {
      �[32m+�[0m�[0m custom_subdomain_name              = "voi-aig-dev-ai001"
      �[32m+�[0m�[0m dynamic_throttling_enabled         = false
      �[32m+�[0m�[0m endpoint                           = (known after apply)
      �[32m+�[0m�[0m fqdns                              = []
      �[32m+�[0m�[0m id                                 = (known after apply)
      �[32m+�[0m�[0m kind                               = "OpenAI"
      �[32m+�[0m�[0m local_auth_enabled                 = true
      �[32m+�[0m�[0m location                           = "swedencentral"
      �[32m+�[0m�[0m name                               = "voi-aig-dev-ai001"
      �[32m+�[0m�[0m outbound_network_access_restricted = true
      �[32m+�[0m�[0m primary_access_key                 = (sensitive value)
      �[32m+�[0m�[0m project_management_enabled         = false
      �[32m+�[0m�[0m public_network_access_enabled      = false
      �[32m+�[0m�[0m resource_group_name                = "voi-aig-dev-rg"
      �[32m+�[0m�[0m secondary_access_key               = (sensitive value)
      �[32m+�[0m�[0m sku_name                           = "S0"
      �[32m+�[0m�[0m tags                               = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }

      �[32m+�[0m�[0m identity {
          �[32m+�[0m�[0m principal_id = (known after apply)
          �[32m+�[0m�[0m tenant_id    = (known after apply)
          �[32m+�[0m�[0m type         = "SystemAssigned"
        }

      �[32m+�[0m�[0m network_acls {
          �[32m+�[0m�[0m default_action = "Deny"
        }
    }

�[1m  # module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" {
      �[32m+�[0m�[0m id                             = (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
      �[32m+�[0m�[0m log_analytics_workspace_id     = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
      �[32m+�[0m�[0m name                           = "applicationLogs-0"
      �[32m+�[0m�[0m target_resource_id             = (known after apply)

      �[32m+�[0m�[0m enabled_log (known after apply)

      �[32m+�[0m�[0m enabled_metric (known after apply)

      �[32m+�[0m�[0m metric (known after apply)
    }

�[1m  # module.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_private_endpoint" "private_endpoint_cognitive_account" {
      �[32m+�[0m�[0m custom_dns_configs            = (known after apply)
      �[32m+�[0m�[0m custom_network_interface_name = "voi-aig-dev-ai001-account-nic"
      �[32m+�[0m�[0m id                            = (known after apply)
      �[32m+�[0m�[0m location                      = "northeurope"
      �[32m+�[0m�[0m name                          = "voi-aig-dev-ai001-account-pe"
      �[32m+�[0m�[0m network_interface             = (known after apply)
      �[32m+�[0m�[0m private_dns_zone_configs      = (known after apply)
      �[32m+�[0m�[0m resource_group_name           = "voi-aig-dev-rg"
      �[32m+�[0m�[0m subnet_id                     = (known after apply)
      �[32m+�[0m�[0m tags                          = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }

      �[32m+�[0m�[0m private_dns_zone_group {
          �[32m+�[0m�[0m id                   = (known after apply)
          �[32m+�[0m�[0m name                 = "voi-aig-dev-ai001-arecord"
          �[32m+�[0m�[0m private_dns_zone_ids = [
              �[32m+�[0m�[0m "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-privatedns-rg/providers/Microsoft.Network/privateDnsZones/privatelink.openai.azure.com",
            ]
        }

      �[32m+�[0m�[0m private_service_connection {
          �[32m+�[0m�[0m is_manual_connection           = false
          �[32m+�[0m�[0m name                           = "voi-aig-dev-ai001-account-svc"
          �[32m+�[0m�[0m private_connection_resource_id = (known after apply)
          �[32m+�[0m�[0m private_ip_address             = (known after apply)
          �[32m+�[0m�[0m subresource_names              = [
              �[32m+�[0m�[0m "account",
            ]
        }
    }

�[1m  # module.ai_service.time_sleep.sleep_connectivity�[0m will be created
�[0m  �[32m+�[0m�[0m resource "time_sleep" "sleep_connectivity" {
      �[32m+�[0m�[0m create_duration = "120s"
      �[32m+�[0m�[0m id              = (known after apply)
    }

�[1m  # module.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_application_insights" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # module.application_insights.azurerm_application_insights.application_insights�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_application_insights" "application_insights" {
      �[32m+�[0m�[0m app_id                                = (known after apply)
      �[32m+�[0m�[0m application_type                      = "web"
      �[32m+�[0m�[0m connection_string                     = (sensitive value)
      �[32m+�[0m�[0m daily_data_cap_in_gb                  = 100
      �[32m+�[0m�[0m daily_data_cap_notifications_disabled = false
      �[32m+�[0m�[0m disable_ip_masking                    = false
      �[32m+�[0m�[0m force_customer_storage_for_profiler   = false
      �[32m+�[0m�[0m id                                    = (known after apply)
      �[32m+�[0m�[0m instrumentation_key                   = (sensitive value)
      �[32m+�[0m�[0m internet_ingestion_enabled            = true
      �[32m+�[0m�[0m internet_query_enabled                = true
      �[32m+�[0m�[0m local_authentication_disabled         = false
      �[32m+�[0m�[0m location                              = "northeurope"
      �[32m+�[0m�[0m name                                  = "voi-aig-dev-appi001"
      �[32m+�[0m�[0m resource_group_name                   = "voi-aig-dev-rg"
      �[32m+�[0m�[0m retention_in_days                     = 90
      �[32m+�[0m�[0m sampling_percentage                   = 100
      �[32m+�[0m�[0m tags                                  = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m workspace_id                          = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
    }

�[1m  # module.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_application_insights" {
      �[32m+�[0m�[0m id                             = (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
      �[32m+�[0m�[0m log_analytics_workspace_id     = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
      �[32m+�[0m�[0m name                           = "applicationLogs-0"
      �[32m+�[0m�[0m target_resource_id             = (known after apply)

      �[32m+�[0m�[0m enabled_log (known after apply)

      �[32m+�[0m�[0m enabled_metric (known after apply)

      �[32m+�[0m�[0m metric (known after apply)
    }

�[1m  # module.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_communication_service" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # module.communication_service.azurerm_communication_service.communication_service�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_communication_service" "communication_service" {
      �[32m+�[0m�[0m data_location               = "Europe"
      �[32m+�[0m�[0m hostname                    = (known after apply)
      �[32m+�[0m�[0m id                          = (known after apply)
      �[32m+�[0m�[0m name                        = "voi-aig-dev-acs001"
      �[32m+�[0m�[0m primary_connection_string   = (sensitive value)
      �[32m+�[0m�[0m primary_key                 = (sensitive value)
      �[32m+�[0m�[0m resource_group_name         = "voi-aig-dev-rg"
      �[32m+�[0m�[0m secondary_connection_string = (sensitive value)
      �[32m+�[0m�[0m secondary_key               = (sensitive value)
      �[32m+�[0m�[0m tags                        = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
    }

�[1m  # module.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_communication_service" {
      �[32m+�[0m�[0m id                             = (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
      �[32m+�[0m�[0m log_analytics_workspace_id     = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
      �[32m+�[0m�[0m name                           = "applicationLogs-0"
      �[32m+�[0m�[0m target_resource_id             = (known after apply)

      �[32m+�[0m�[0m enabled_log (known after apply)

      �[32m+�[0m�[0m enabled_metric (known after apply)

      �[32m+�[0m�[0m metric (known after apply)
    }

�[1m  # module.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_key_vault" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # module.key_vault.azurerm_key_vault.key_vault�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault" "key_vault" {
      �[32m+�[0m�[0m access_policy                   = []
      �[32m+�[0m�[0m enable_rbac_authorization       = true
      �[32m+�[0m�[0m enabled_for_deployment          = false
      �[32m+�[0m�[0m enabled_for_disk_encryption     = false
      �[32m+�[0m�[0m enabled_for_template_deployment = false
      �[32m+�[0m�[0m id                              = (known after apply)
      �[32m+�[0m�[0m location                        = "northeurope"
      �[32m+�[0m�[0m name                            = "voi-aig-dev-kv001"
      �[32m+�[0m�[0m public_network_access_enabled   = false
      �[32m+�[0m�[0m purge_protection_enabled        = true
      �[32m+�[0m�[0m rbac_authorization_enabled      = (known after apply)
      �[32m+�[0m�[0m resource_group_name             = "voi-aig-dev-rg"
      �[32m+�[0m�[0m sku_name                        = "standard"
      �[32m+�[0m�[0m soft_delete_retention_days      = 7
      �[32m+�[0m�[0m tags                            = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m tenant_id                       = "37963dd4-f4e6-40f8-a7d6-24b97919e452"
      �[32m+�[0m�[0m vault_uri                       = (known after apply)

      �[32m+�[0m�[0m contact (known after apply)

      �[32m+�[0m�[0m network_acls {
          �[32m+�[0m�[0m bypass         = "AzureServices"
          �[32m+�[0m�[0m default_action = "Deny"
        }
    }

�[1m  # module.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_key_vault" {
      �[32m+�[0m�[0m id                             = (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
      �[32m+�[0m�[0m log_analytics_workspace_id     = "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001"
      �[32m+�[0m�[0m name                           = "applicationLogs-0"
      �[32m+�[0m�[0m target_resource_id             = (known after apply)

      �[32m+�[0m�[0m enabled_log (known after apply)

      �[32m+�[0m�[0m enabled_metric (known after apply)

      �[32m+�[0m�[0m metric (known after apply)
    }

�[1m  # module.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_private_endpoint" "private_endpoint_cognitive_account_vault" {
      �[32m+�[0m�[0m custom_dns_configs            = (known after apply)
      �[32m+�[0m�[0m custom_network_interface_name = "voi-aig-dev-kv001-vault-nic"
      �[32m+�[0m�[0m id                            = (known after apply)
      �[32m+�[0m�[0m location                      = "northeurope"
      �[32m+�[0m�[0m name                          = "voi-aig-dev-kv001-vault-pe"
      �[32m+�[0m�[0m network_interface             = (known after apply)
      �[32m+�[0m�[0m private_dns_zone_configs      = (known after apply)
      �[32m+�[0m�[0m resource_group_name           = "voi-aig-dev-rg"
      �[32m+�[0m�[0m subnet_id                     = (known after apply)
      �[32m+�[0m�[0m tags                          = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }

      �[32m+�[0m�[0m private_dns_zone_group {
          �[32m+�[0m�[0m id                   = (known after apply)
          �[32m+�[0m�[0m name                 = "voi-aig-dev-kv001-arecord"
          �[32m+�[0m�[0m private_dns_zone_ids = [
              �[32m+�[0m�[0m "/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-privatedns-rg/providers/Microsoft.Network/privateDnsZones/privatelink.vaultcore.azure.net",
            ]
        }

      �[32m+�[0m�[0m private_service_connection {
          �[32m+�[0m�[0m is_manual_connection           = false
          �[32m+�[0m�[0m name                           = "voi-aig-dev-kv001-vault-svc"
          �[32m+�[0m�[0m private_connection_resource_id = (known after apply)
          �[32m+�[0m�[0m private_ip_address             = (known after apply)
          �[32m+�[0m�[0m subresource_names              = [
              �[32m+�[0m�[0m "vault",
            ]
        }
    }

�[1m  # module.key_vault.azurerm_role_assignment.current_roleassignment_key_vault�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_role_assignment" "current_roleassignment_key_vault" {
      �[32m+�[0m�[0m condition_version                = (known after apply)
      �[32m+�[0m�[0m id                               = (known after apply)
      �[32m+�[0m�[0m name                             = (known after apply)
      �[32m+�[0m�[0m principal_id                     = "973df2ad-4e5e-4e8b-9df6-17f61e9efd55"
      �[32m+�[0m�[0m principal_type                   = (known after apply)
      �[32m+�[0m�[0m role_definition_id               = (known after apply)
      �[32m+�[0m�[0m role_definition_name             = "Key Vault Administrator"
      �[32m+�[0m�[0m scope                            = (known after apply)
      �[32m+�[0m�[0m skip_service_principal_aad_check = (known after apply)
    }

�[1m  # module.key_vault.time_sleep.sleep_connectivity�[0m will be created
�[0m  �[32m+�[0m�[0m resource "time_sleep" "sleep_connectivity" {
      �[32m+�[0m�[0m create_duration = "120s"
      �[32m+�[0m�[0m id              = (known after apply)
    }

�[1m  # module.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_user_assigned_identity" "user_assigned_identity" {
      �[32m+�[0m�[0m client_id           = (known after apply)
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m location            = "northeurope"
      �[32m+�[0m�[0m name                = "voi-aig-dev-uai001"
      �[32m+�[0m�[0m principal_id        = (known after apply)
      �[32m+�[0m�[0m resource_group_name = "voi-aig-dev-rg"
      �[32m+�[0m�[0m tags                = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m tenant_id           = (known after apply)
    }

�[1mPlan:�[0m 25 to add, 0 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.key_vault.azurerm_key_vault.key_vault,
�[33m│�[0m �[0m  on .terraform/modules/key_vault/modules/keyvault/main.tf line 8, in resource "azurerm_key_vault" "key_vault":
�[33m│�[0m �[0m   8:   enable_rbac_authorization       = �[4mtrue�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0mThis property has been renamed to `rbac_authorization_enabled` and will be
�[33m│�[0m �[0mremoved in v5.0 of the provider
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 2s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Still reading... [00m10s elapsed]�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 11s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 4s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m

Terraform will perform the following actions:

�[1m  # azurerm_container_app.container_app_backend�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
      �[32m+�[0m�[0m container_app_environment_id  = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001"
      �[32m+�[0m�[0m custom_domain_verification_id = (sensitive value)
      �[32m+�[0m�[0m id                            = (known after apply)
      �[32m+�[0m�[0m latest_revision_fqdn          = (known after apply)
      �[32m+�[0m�[0m latest_revision_name          = (known after apply)
      �[32m+�[0m�[0m location                      = (known after apply)
      �[32m+�[0m�[0m name                          = "voi-aig-dev-ca001-backend"
      �[32m+�[0m�[0m outbound_ip_addresses         = (known after apply)
      �[32m+�[0m�[0m resource_group_name           = "voi-aig-dev-rg"
      �[32m+�[0m�[0m revision_mode                 = "Single"
      �[32m+�[0m�[0m tags                          = {
          �[32m+�[0m�[0m "workload" = "voice-agent"
        }
      �[32m+�[0m�[0m workload_profile_name         = "Consumption"

      �[32m+�[0m�[0m identity {
          �[32m+�[0m�[0m identity_ids = [
              �[32m+�[0m�[0m "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001",
            ]
          �[32m+�[0m�[0m principal_id = (known after apply)
          �[32m+�[0m�[0m tenant_id    = (known after apply)
          �[32m+�[0m�[0m type         = "UserAssigned"
        }

      �[32m+�[0m�[0m ingress {
          �[32m+�[0m�[0m allow_insecure_connections = false
          �[32m+�[0m�[0m client_certificate_mode    = "accept"
          �[32m+�[0m�[0m custom_domain              = (known after apply)
          �[32m+�[0m�[0m external_enabled           = true
          �[32m+�[0m�[0m fqdn                       = (known after apply)
          �[32m+�[0m�[0m target_port                = 80
          �[32m+�[0m�[0m transport                  = "auto"

          �[32m+�[0m�[0m traffic_weight {
              �[32m+�[0m�[0m latest_revision = true
              �[32m+�[0m�[0m percentage      = 100
            }
        }

      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }
      �[32m+�[0m�[0m secret {
          # At least one attribute in this block is (or was) sensitive,
          # so its contents will not be displayed.
        }

      �[32m+�[0m�[0m template {
          �[32m+�[0m�[0m max_replicas                     = 10
          �[32m+�[0m�[0m min_replicas                     = 1
          �[32m+�[0m�[0m revision_suffix                  = "real-time-backend"
          �[32m+�[0m�[0m termination_grace_period_seconds = 10

          �[32m+�[0m�[0m container {
              �[32m+�[0m�[0m cpu               = 0.5
              �[32m+�[0m�[0m ephemeral_storage = (known after apply)
              �[32m+�[0m�[0m image             = (sensitive value)
              �[32m+�[0m�[0m memory            = "1.0Gi"
              �[32m+�[0m�[0m name              = "real-time-backend"

              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "ACS_CONNECTION_STRING"
                  �[32m+�[0m�[0m secret_name = "acs-connection-string"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "APPLICATIONINSIGHTS_CONNECTION_STRING"
                  �[32m+�[0m�[0m secret_name = "ai-connection-string"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name  = "AZURE_OPENAI_ENDPOINT"
                  �[32m+�[0m�[0m value = "https://voi-aig-dev-ai001.openai.azure.com/"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "AZURE_OPENAI_API_KEY"
                  �[32m+�[0m�[0m secret_name = "aoai-primary-access-key"
                }
            }

          �[32m+�[0m�[0m http_scale_rule {
              �[32m+�[0m�[0m concurrent_requests = "50"
              �[32m+�[0m�[0m name                = "http-scale-rule"
            }
        }
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_aoai_primary_access_key" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001"
      �[32m+�[0m�[0m name                    = "aoai-primary-access-key"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_application_insights_connection_string�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_application_insights_connection_string" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001"
      �[32m+�[0m�[0m name                    = "ai-connection-string"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1m  # azurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_key_vault_secret" "key_vault_secret_communication_service_primary_connection_string" {
      �[32m+�[0m�[0m content_type            = "text/plain"
      �[32m+�[0m�[0m id                      = (known after apply)
      �[32m+�[0m�[0m key_vault_id            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001"
      �[32m+�[0m�[0m name                    = "acs-connection-string"
      �[32m+�[0m�[0m resource_id             = (known after apply)
      �[32m+�[0m�[0m resource_versionless_id = (known after apply)
      �[32m+�[0m�[0m value                   = (sensitive value)
      �[32m+�[0m�[0m value_wo                = (write-only attribute)
      �[32m+�[0m�[0m version                 = (known after apply)
      �[32m+�[0m�[0m versionless_id          = (known after apply)
    }

�[1mPlan:�[0m 4 to add, 0 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with azurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"],
�[33m│�[0m �[0m  on containerapps.tf line 26, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_container_app_environment":
�[33m│�[0m �[0m  26: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_container_app_environment" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 5 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 1s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m
  �[33m~�[0m update in-place�[0m

Terraform will perform the following actions:

�[1m  # azurerm_cognitive_account_rai_policy.cognitive_account_rai_policy�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_cognitive_account_rai_policy" "cognitive_account_rai_policy" {
      �[32m+�[0m�[0m base_policy_name     = "Microsoft.DefaultV2"
      �[32m+�[0m�[0m cognitive_account_id = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001"
      �[32m+�[0m�[0m id                   = (known after apply)
      �[32m+�[0m�[0m mode                 = "Asynchronous_filter"
      �[32m+�[0m�[0m name                 = "default"

      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Violence"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Hate"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Sexual"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Selfharm"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Jailbreak"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Indirect Attack"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Indirect Attack Spotlighting"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Prompt"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Violence"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Hate"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Sexual"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Selfharm"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Protected Material Text"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
      �[32m+�[0m�[0m content_filter {
          �[32m+�[0m�[0m block_enabled      = false
          �[32m+�[0m�[0m filter_enabled     = false
          �[32m+�[0m�[0m name               = "Protected Material Code"
          �[32m+�[0m�[0m severity_threshold = "Medium"
          �[32m+�[0m�[0m source             = "Completion"
        }
    }

�[1m  # azurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_cognitive_deployment" "cognitive_deployment_gpt_40_transcribe" {
      �[32m+�[0m�[0m cognitive_account_id   = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001"
      �[32m+�[0m�[0m id                     = (known after apply)
      �[32m+�[0m�[0m name                   = "gpt-4o-transcribe"
      �[32m+�[0m�[0m rai_policy_name        = "default"
      �[32m+�[0m�[0m version_upgrade_option = "OnceCurrentVersionExpired"

      �[32m+�[0m�[0m model {
          �[32m+�[0m�[0m format  = "OpenAI"
          �[32m+�[0m�[0m name    = "gpt-4o-transcribe"
          �[32m+�[0m�[0m version = "2025-03-20"
        }

      �[32m+�[0m�[0m sku {
          �[32m+�[0m�[0m capacity = 100
          �[32m+�[0m�[0m name     = "GlobalStandard"
        }
    }

�[1m  # azurerm_cognitive_deployment.cognitive_deployment_gpt_realtime�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_cognitive_deployment" "cognitive_deployment_gpt_realtime" {
      �[32m+�[0m�[0m cognitive_account_id   = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001"
      �[32m+�[0m�[0m id                     = (known after apply)
      �[32m+�[0m�[0m name                   = "gpt-realtime"
      �[32m+�[0m�[0m rai_policy_name        = "default"
      �[32m+�[0m�[0m version_upgrade_option = "OnceCurrentVersionExpired"

      �[32m+�[0m�[0m model {
          �[32m+�[0m�[0m format  = "OpenAI"
          �[32m+�[0m�[0m name    = "gpt-realtime"
          �[32m+�[0m�[0m version = "2025-08-28"
        }

      �[32m+�[0m�[0m sku {
          �[32m+�[0m�[0m capacity = 100
          �[32m+�[0m�[0m name     = "GlobalStandard"
        }
    }

�[1m  # azurerm_container_app.container_app_backend�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
        id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend"
        name                          = "voi-aig-dev-ca001-backend"
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (10 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m template {
            �[90m# (4 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (5 unchanged attributes hidden)�[0m�[0m

              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "REALTIME_MODEL_NAME"
                  �[32m+�[0m�[0m secret_name = "gpt-realtime"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "TRANSCRIPTION_MODEL_NAME"
                  �[32m+�[0m�[0m secret_name = "gpt-4o-transcribe"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "INSTRUCTIONS"
                  �[32m+�[0m�[0m secret_name = "You are a customer service agent for Microsoft focused exclusively on Azure."
                }

                �[90m# (4 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (5 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 3 to add, 1 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 1s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mazurerm_cognitive_account_rai_policy.cognitive_account_rai_policy: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/raiPolicies/default]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe]�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[32m+�[0m create�[0m
  �[33m~�[0m update in-place�[0m

Terraform will perform the following actions:

�[1m  # azurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_cognitive_deployment" "cognitive_deployment_gpt_40_transcribe" {
        id                         = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe"
        name                       = "gpt-4o-transcribe"
        �[90m# (4 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m sku {
          �[33m~�[0m�[0m capacity = 100 �[33m->�[0m�[0m 5
            name     = "GlobalStandard"
            �[90m# (3 unchanged attributes hidden)�[0m�[0m
        }

        �[90m# (1 unchanged block hidden)�[0m�[0m
    }

�[1m  # azurerm_cognitive_deployment.cognitive_deployment_gpt_realtime�[0m will be created
�[0m  �[32m+�[0m�[0m resource "azurerm_cognitive_deployment" "cognitive_deployment_gpt_realtime" {
      �[32m+�[0m�[0m cognitive_account_id   = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001"
      �[32m+�[0m�[0m id                     = (known after apply)
      �[32m+�[0m�[0m name                   = "gpt-realtime"
      �[32m+�[0m�[0m rai_policy_name        = "default"
      �[32m+�[0m�[0m version_upgrade_option = "OnceCurrentVersionExpired"

      �[32m+�[0m�[0m model {
          �[32m+�[0m�[0m format  = "OpenAI"
          �[32m+�[0m�[0m name    = "gpt-realtime"
          �[32m+�[0m�[0m version = "2025-08-28"
        }

      �[32m+�[0m�[0m sku {
          �[32m+�[0m�[0m capacity = 5
          �[32m+�[0m�[0m name     = "GlobalStandard"
        }
    }

�[1m  # azurerm_container_app.container_app_backend�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
        id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend"
        name                          = "voi-aig-dev-ca001-backend"
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (10 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m template {
            �[90m# (4 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (5 unchanged attributes hidden)�[0m�[0m

              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "REALTIME_MODEL_NAME"
                  �[32m+�[0m�[0m secret_name = "gpt-realtime"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "TRANSCRIPTION_MODEL_NAME"
                  �[32m+�[0m�[0m secret_name = "gpt-4o-transcribe"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name        = "INSTRUCTIONS"
                  �[32m+�[0m�[0m secret_name = "You are a customer service agent for Microsoft focused exclusively on Azure."
                }

                �[90m# (4 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (5 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 1 to add, 2 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 0s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mazurerm_cognitive_account_rai_policy.cognitive_account_rai_policy: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/raiPolicies/default]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_realtime: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-realtime]�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[33m~�[0m update in-place�[0m

Terraform will perform the following actions:

�[1m  # azurerm_container_app.container_app_backend�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
        id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend"
        name                          = "voi-aig-dev-ca001-backend"
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (10 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m template {
            �[90m# (4 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (5 unchanged attributes hidden)�[0m�[0m

              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name  = "REALTIME_MODEL_NAME"
                  �[32m+�[0m�[0m value = "gpt-realtime"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name  = "TRANSCRIPTION_MODEL_NAME"
                  �[32m+�[0m�[0m value = "gpt-4o-transcribe"
                }
              �[32m+�[0m�[0m env {
                  �[32m+�[0m�[0m name  = "INSTRUCTIONS"
                  �[32m+�[0m�[0m value = "You are a customer service agent for Microsoft focused exclusively on Azure."
                }

                �[90m# (4 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (5 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 0 to add, 1 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 1s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mazurerm_cognitive_account_rai_policy.cognitive_account_rai_policy: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/raiPolicies/default]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_realtime: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-realtime]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[33m~�[0m update in-place�[0m

Terraform will perform the following actions:

�[1m  # azurerm_container_app.container_app_backend�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
        id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend"
        name                          = "voi-aig-dev-ca001-backend"
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (10 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m template {
          �[32m+�[0m�[0m revision_suffix                  = "real-time-backend"
            �[90m# (3 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (5 unchanged attributes hidden)�[0m�[0m

              �[32m+�[0m�[0m liveness_probe {
                  �[32m+�[0m�[0m failure_count_threshold = 3
                  �[32m+�[0m�[0m initial_delay           = 1
                  �[32m+�[0m�[0m interval_seconds        = 10
                  �[32m+�[0m�[0m path                    = "/v1/health/heartbeat"
                  �[32m+�[0m�[0m port                    = 80
                  �[32m+�[0m�[0m timeout                 = 1
                  �[32m+�[0m�[0m transport               = "HTTP"

                  �[32m+�[0m�[0m header {
                      �[32m+�[0m�[0m name  = "x-liveness"
                      �[32m+�[0m�[0m value = "todo"
                    }
                }

              �[32m+�[0m�[0m readiness_probe {
                  �[32m+�[0m�[0m failure_count_threshold = 3
                  �[32m+�[0m�[0m initial_delay           = 0
                  �[32m+�[0m�[0m interval_seconds        = 10
                  �[32m+�[0m�[0m path                    = "/v1/health/heartbeat"
                  �[32m+�[0m�[0m port                    = 80
                  �[32m+�[0m�[0m success_count_threshold = 3
                  �[32m+�[0m�[0m timeout                 = 1
                  �[32m+�[0m�[0m transport               = "HTTP"

                  �[32m+�[0m�[0m header {
                      �[32m+�[0m�[0m name  = "x-liveness"
                      �[32m+�[0m�[0m value = "todo"
                    }
                }

                �[90m# (7 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (5 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 0 to add, 1 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 0s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mazurerm_cognitive_account_rai_policy.cognitive_account_rai_policy: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/raiPolicies/default]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_realtime: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-realtime]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Reading...�[0m�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m
�[0m�[1mdata.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  �[33m~�[0m update in-place�[0m

Terraform will perform the following actions:

�[1m  # azurerm_container_app.container_app_backend�[0m will be updated in-place
�[0m  �[33m~�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
        id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend"
        name                          = "voi-aig-dev-ca001-backend"
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (10 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m template {
            �[90m# (4 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (5 unchanged attributes hidden)�[0m�[0m

              �[32m+�[0m�[0m liveness_probe {
                  �[32m+�[0m�[0m failure_count_threshold = 3
                  �[32m+�[0m�[0m initial_delay           = 1
                  �[32m+�[0m�[0m interval_seconds        = 10
                  �[32m+�[0m�[0m path                    = "/v1/health/heartbeat"
                  �[32m+�[0m�[0m port                    = 80
                  �[32m+�[0m�[0m timeout                 = 1
                  �[32m+�[0m�[0m transport               = "HTTP"

                  �[32m+�[0m�[0m header {
                      �[32m+�[0m�[0m name  = "x-liveness"
                      �[32m+�[0m�[0m value = "todo"
                    }
                }

              �[32m+�[0m�[0m readiness_probe {
                  �[32m+�[0m�[0m failure_count_threshold = 3
                  �[32m+�[0m�[0m initial_delay           = 0
                  �[32m+�[0m�[0m interval_seconds        = 10
                  �[32m+�[0m�[0m path                    = "/v1/health/heartbeat"
                  �[32m+�[0m�[0m port                    = 80
                  �[32m+�[0m�[0m success_count_threshold = 3
                  �[32m+�[0m�[0m timeout                 = 1
                  �[32m+�[0m�[0m transport               = "HTTP"

                  �[32m+�[0m�[0m header {
                      �[32m+�[0m�[0m name  = "x-liveness"
                      �[32m+�[0m�[0m value = "todo"
                    }
                }

                �[90m# (7 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (5 unchanged blocks hidden)�[0m�[0m
    }

�[1mPlan:�[0m 0 to add, 1 to change, 0 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Lint Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Format and Style 🖌success

@github-actions
Copy link

github-actions bot commented Nov 7, 2025

Terraform Validation & Plan Results

  • Terraform Version 📎1.13.4
  • Working Directory 📂./code/infra
  • Terraform Initialization ⚙️success
  • Terraform Validation 🤖success
  • Terraform Plan 📖success
Show Plan

terraform
Acquiring state lock. This may take a few moments...
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mdata.azurerm_client_config.current: Reading...�[0m�[0m
�[0m�[1mazurerm_resource_group.resource_group: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg]�[0m
�[0m�[1mdata.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_client_config.current: Read complete after 0s [id=Y2xpZW50Q29uZmlncy9jbGllbnRJZD1lNWRmNjg0My1lYmRlLTRkNzktOWM3ZS03NDMxYTNjZDQzZDI7b2JqZWN0SWQ9OTczZGYyYWQtNGU1ZS00ZThiLTlkZjYtMTdmNjFlOWVmZDU1O3N1YnNjcmlwdGlvbklkPTFmZGFiMTE4LTE2MzgtNDE5YS04YjEyLTA2Yzk1NDM3MTRhMDt0ZW5hbnRJZD0zNzk2M2RkNC1mNGU2LTQwZjgtYTdkNi0yNGI5NzkxOWU0NTI=]�[0m
�[0m�[1mmodule.communication_service.azurerm_communication_service.communication_service: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.ai_service.azurerm_cognitive_account.cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.application_insights.azurerm_application_insights.application_insights: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.key_vault.azurerm_key_vault.key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.user_assigned_identity.azurerm_user_assigned_identity.user_assigned_identity: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/voi-aig-dev-uai001]�[0m
�[0m�[1mdata.azurerm_network_security_group.network_security_group: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/networkSecurityGroups/ptt-dev-default-nsg001]�[0m
�[0m�[1mdata.azurerm_route_table.route_table: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/routeTables/ptt-dev-default-rt001]�[0m
�[0m�[1mdata.azurerm_virtual_network.virtual_network: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001]�[0m
�[0m�[1mazapi_resource.subnet_container_app: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppEnvironmentSubnet]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Reading...�[0m�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.azurerm_role_assignment.current_roleassignment_key_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/276acc93-729b-9c60-3859-c63cb268f835]�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Reading...�[0m�[0m
�[0m�[1mazurerm_role_assignment.current_role_assignment_key_vault_secrets_officer: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/6414a717-a4e8-dac1-997c-817a4d9adc98]�[0m
�[0m�[1mazurerm_role_assignment.uai_role_assignment_key_vault_secrets_user: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001/providers/Microsoft.Authorization/roleAssignments/ae79b26e-925e-2c19-1537-44231d416c86]�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Reading...�[0m�[0m
�[0m�[1mmodule.key_vault.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_key_vault: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001]�[0m
�[0m�[1mmodule.key_vault.azurerm_monitor_diagnostic_setting.diagnostic_setting_key_vault["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.KeyVault/vaults/voi-aig-dev-kv001|applicationLogs-0]�[0m
�[0m�[1mmodule.ai_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_cognitive_account: Read complete after 0s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001]�[0m
�[0m�[1mmodule.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001|applicationLogs-0]�[0m
�[0m�[1mdata.azurerm_log_analytics_workspace.log_analytics_workspace: Read complete after 0s [id=/subscriptions/e82c5267-9dc4-4f45-ac13-abdd5e130d27/resourceGroups/ptt-dev-logging-rg/providers/Microsoft.OperationalInsights/workspaces/ptt-dev-log001]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Reading...�[0m�[0m
�[0m�[1mmodule.communication_service.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_communication_service: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001]�[0m
�[0m�[1mmodule.communication_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_communication_service["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Communication/communicationServices/voi-aig-dev-acs001|applicationLogs-0]�[0m
�[0m�[1mmodule.application_insights.data.azurerm_monitor_diagnostic_categories.diagnostic_categories_application_insights: Read complete after 1s [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001]�[0m
�[0m�[1mmodule.application_insights.azurerm_monitor_diagnostic_setting.diagnostic_setting_application_insights["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Insights/components/voi-aig-dev-appi001|applicationLogs-0]�[0m
�[0m�[1mazurerm_container_app_environment.container_app_environment: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001]�[0m
�[0m�[1mazapi_resource.subnet_private_endpoints: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/ptt-dev-networking-rg/providers/Microsoft.Network/virtualNetworks/spoke-ptt-dev-vnet001/subnets/ConAppPrivateEndpointSubnet]�[0m
�[0m�[1mazurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0]�[0m
�[0m�[1mmodule.key_vault.azurerm_private_endpoint.private_endpoint_cognitive_account_vault: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-kv001-vault-pe]�[0m
�[0m�[1mmodule.ai_service.azurerm_private_endpoint.private_endpoint_cognitive_account: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.Network/privateEndpoints/voi-aig-dev-ai001-account-pe]�[0m
�[0m�[1mmodule.key_vault.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:39Z]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_application_insights_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/ai-connection-string/61f11ffbd49648a79e1037c0833f9ba6]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_aoai_primary_access_key: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/aoai-primary-access-key/73ca097d844b42fab851584b7aad7708]�[0m
�[0m�[1mazurerm_key_vault_secret.key_vault_secret_communication_service_primary_connection_string: Refreshing state... [id=https://voi-aig-dev-kv001.vault.azure.net/secrets/acs-connection-string/7e32ac70e15a4887868a51b1e13392e9]�[0m
�[0m�[1mmodule.ai_service.time_sleep.sleep_connectivity: Refreshing state... [id=2025-11-07T08:02:52Z]�[0m
�[0m�[1mazurerm_cognitive_account_rai_policy.cognitive_account_rai_policy: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/raiPolicies/default]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_40_transcribe: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-4o-transcribe]�[0m
�[0m�[1mazurerm_cognitive_deployment.cognitive_deployment_gpt_realtime: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.CognitiveServices/accounts/voi-aig-dev-ai001/deployments/gpt-realtime]�[0m
�[0m�[1mazurerm_container_app.container_app_backend: Refreshing state... [id=/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend]�[0m

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
�[31m-�[0m/�[32m+�[0m destroy and then create replacement�[0m
 �[36m<=�[0m read (data resources)�[0m

Terraform will perform the following actions:

�[1m  # data.azurerm_monitor_diagnostic_categories.diagnostic_categories_container_app_environment�[0m will be read during apply
  # (config refers to values not yet known)
�[0m �[36m<=�[0m�[0m data "azurerm_monitor_diagnostic_categories" "diagnostic_categories_container_app_environment" {
      �[32m+�[0m�[0m id                  = (known after apply)
      �[32m+�[0m�[0m log_category_groups = (known after apply)
      �[32m+�[0m�[0m log_category_types  = (known after apply)
      �[32m+�[0m�[0m metrics             = (known after apply)
      �[32m+�[0m�[0m resource_id         = (known after apply)
    }

�[1m  # azurerm_container_app.container_app_backend�[0m must be �[1m�[31mreplaced�[0m
�[0m�[31m-�[0m/�[32m+�[0m�[0m resource "azurerm_container_app" "container_app_backend" {
      �[33m~�[0m�[0m container_app_environment_id  = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001" -> (known after apply) �[31m# forces replacement�[0m�[0m
      �[33m~�[0m�[0m custom_domain_verification_id = (sensitive value)
      �[33m~�[0m�[0m id                            = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/containerApps/voi-aig-dev-ca001-backend" -> (known after apply)
      �[33m~�[0m�[0m latest_revision_fqdn          = "voi-aig-dev-ca001-backend--0000001.kindocean-7a8d127b.northeurope.azurecontainerapps.io" -> (known after apply)
      �[33m~�[0m�[0m latest_revision_name          = "voi-aig-dev-ca001-backend--0000001" -> (known after apply)
      �[33m~�[0m�[0m location                      = "northeurope" -> (known after apply)
      �[31m-�[0m�[0m max_inactive_revisions        = 0 �[90m-> null�[0m�[0m
        name                          = "voi-aig-dev-ca001-backend"
      �[33m~�[0m�[0m outbound_ip_addresses         = [
          �[31m-�[0m�[0m "20.105.70.20",
          �[31m-�[0m�[0m "20.105.70.58",
          �[31m-�[0m�[0m "20.105.32.76",
          �[31m-�[0m�[0m "20.105.32.139",
          �[31m-�[0m�[0m "20.105.33.209",
          �[31m-�[0m�[0m "20.105.33.28",
          �[31m-�[0m�[0m "20.105.32.212",
          �[31m-�[0m�[0m "20.105.32.182",
          �[31m-�[0m�[0m "20.105.33.168",
          �[31m-�[0m�[0m "20.105.33.212",
          �[31m-�[0m�[0m "20.105.33.155",
          �[31m-�[0m�[0m "20.105.33.195",
          �[31m-�[0m�[0m "20.105.69.247",
          �[31m-�[0m�[0m "20.105.70.28",
          �[31m-�[0m�[0m "20.105.47.15",
          �[31m-�[0m�[0m "20.105.47.12",
          �[31m-�[0m�[0m "4.208.220.175",
          �[31m-�[0m�[0m "4.208.218.235",
          �[31m-�[0m�[0m "4.208.219.44",
          �[31m-�[0m�[0m "4.208.219.6",
          �[31m-�[0m�[0m "20.105.124.149",
          �[31m-�[0m�[0m "20.105.123.192",
          �[31m-�[0m�[0m "52.178.141.116",
          �[31m-�[0m�[0m "52.178.138.108",
          �[31m-�[0m�[0m "52.178.138.196",
          �[31m-�[0m�[0m "52.178.141.59",
          �[31m-�[0m�[0m "52.178.141.173",
          �[31m-�[0m�[0m "52.178.141.228",
          �[31m-�[0m�[0m "52.178.139.43",
          �[31m-�[0m�[0m "52.169.76.168",
          �[31m-�[0m�[0m "52.178.141.140",
          �[31m-�[0m�[0m "52.178.138.54",
          �[31m-�[0m�[0m "20.105.123.181",
          �[31m-�[0m�[0m "20.105.124.100",
          �[31m-�[0m�[0m "20.123.115.147",
          �[31m-�[0m�[0m "20.123.115.110",
          �[31m-�[0m�[0m "4.210.23.209",
          �[31m-�[0m�[0m "4.210.23.217",
          �[31m-�[0m�[0m "4.210.23.181",
          �[31m-�[0m�[0m "4.210.23.186",
          �[31m-�[0m�[0m "132.164.140.167",
        ] -> (known after apply)
        tags                          = {
            "workload" = "voice-agent"
        }
        �[90m# (3 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m identity {
          �[32m+�[0m�[0m principal_id = (known after apply)
          �[32m+�[0m�[0m tenant_id    = (known after apply)
            �[90m# (2 unchanged attributes hidden)�[0m�[0m
        }

      �[33m~�[0m�[0m ingress {
          �[33m~�[0m�[0m client_certificate_mode    = "ignore" �[33m->�[0m�[0m "accept"
          �[33m~�[0m�[0m custom_domain              = [] -> (known after apply)
          �[31m-�[0m�[0m exposed_port               = 0 �[90m-> null�[0m�[0m
          �[33m~�[0m�[0m fqdn                       = "voi-aig-dev-ca001-backend.kindocean-7a8d127b.northeurope.azurecontainerapps.io" -> (known after apply)
            �[90m# (4 unchanged attributes hidden)�[0m�[0m

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

      �[33m~�[0m�[0m template {
          �[32m+�[0m�[0m revision_suffix                  = (known after apply)
            �[90m# (3 unchanged attributes hidden)�[0m�[0m

          �[33m~�[0m�[0m container {
              �[31m-�[0m�[0m args              = [] �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m command           = [] �[90m-> null�[0m�[0m
              �[33m~�[0m�[0m ephemeral_storage = "2Gi" -> (known after apply)
              �[33m~�[0m�[0m memory            = "1Gi" �[33m->�[0m�[0m "1.0Gi"
                name              = "real-time-backend"
                �[90m# (2 unchanged attributes hidden)�[0m�[0m

              �[33m~�[0m�[0m liveness_probe {
                  �[33m~�[0m�[0m termination_grace_period_seconds = 0 -> (known after apply)
                    �[90m# (8 unchanged attributes hidden)�[0m�[0m

                    �[90m# (1 unchanged block hidden)�[0m�[0m
                }

                �[90m# (8 unchanged blocks hidden)�[0m�[0m
            }

            �[90m# (1 unchanged block hidden)�[0m�[0m
        }

        �[90m# (3 unchanged blocks hidden)�[0m�[0m
    }

�[1m  # azurerm_container_app_environment.container_app_environment�[0m must be �[1m�[31mreplaced�[0m
�[0m�[31m-�[0m/�[32m+�[0m�[0m resource "azurerm_container_app_environment" "container_app_environment" {
      �[33m~�[0m�[0m custom_domain_verification_id               = "009611F9D6D74DFDD6E5D2FFAE58B07528E14C191155D2E7B8F8B53AC5C7538A" -> (known after apply)
      �[33m~�[0m�[0m default_domain                              = "kindocean-7a8d127b.northeurope.azurecontainerapps.io" -> (known after apply)
      �[32m+�[0m�[0m docker_bridge_cidr                          = (known after apply)
      �[33m~�[0m�[0m id                                          = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001" -> (known after apply)
      �[33m~�[0m�[0m internal_load_balancer_enabled              = true �[33m->�[0m�[0m false �[31m# forces replacement�[0m�[0m
        name                                        = "voi-aig-dev-cae001"
      �[32m+�[0m�[0m platform_reserved_cidr                      = (known after apply)
      �[32m+�[0m�[0m platform_reserved_dns_ip_address            = (known after apply)
      �[33m~�[0m�[0m public_network_access                       = "Disabled" -> (known after apply)
      �[33m~�[0m�[0m static_ip_address                           = "10.3.1.51" -> (known after apply)
        tags                                        = {
            "workload" = "voice-agent"
        }
        �[90m# (9 unchanged attributes hidden)�[0m�[0m

      �[31m-�[0m�[0m workload_profile {
          �[31m-�[0m�[0m maximum_count         = 0 �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m minimum_count         = 0 �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m name                  = "Consumption" �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m workload_profile_type = "Consumption" �[90m-> null�[0m�[0m
        }
      �[32m+�[0m�[0m workload_profile {
          �[32m+�[0m�[0m name                  = "Consumption"
          �[32m+�[0m�[0m workload_profile_type = "Consumption"
        }
    }

�[1m  # azurerm_monitor_diagnostic_setting.diagnostic_setting_container_app_environment["0"]�[0m must be �[1m�[31mreplaced�[0m
�[0m�[31m-�[0m/�[32m+�[0m�[0m resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_container_app_environment" {
      �[33m~�[0m�[0m id                             = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001|applicationLogs-0" -> (known after apply)
      �[32m+�[0m�[0m log_analytics_destination_type = (known after apply)
        name                           = "applicationLogs-0"
      �[33m~�[0m�[0m target_resource_id             = "/subscriptions/1fdab118-1638-419a-8b12-06c9543714a0/resourceGroups/voi-aig-dev-rg/providers/Microsoft.App/managedEnvironments/voi-aig-dev-cae001" -> (known after apply) �[31m# forces replacement�[0m�[0m
        �[90m# (3 unchanged attributes hidden)�[0m�[0m

      �[33m~�[0m�[0m enabled_log (known after apply)
      �[31m-�[0m�[0m enabled_log {
          �[31m-�[0m�[0m category_group = "allLogs" �[90m-> null�[0m�[0m
            �[90m# (1 unchanged attribute hidden)�[0m�[0m

          �[31m-�[0m�[0m retention_policy {
              �[31m-�[0m�[0m days    = 0 �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m enabled = false �[90m-> null�[0m�[0m
            }
        }
      �[31m-�[0m�[0m enabled_log {
          �[31m-�[0m�[0m category_group = "audit" �[90m-> null�[0m�[0m
            �[90m# (1 unchanged attribute hidden)�[0m�[0m

          �[31m-�[0m�[0m retention_policy {
              �[31m-�[0m�[0m days    = 0 �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m enabled = false �[90m-> null�[0m�[0m
            }
        }

      �[33m~�[0m�[0m enabled_metric (known after apply)
      �[31m-�[0m�[0m enabled_metric {
          �[31m-�[0m�[0m category = "AllMetrics" �[90m-> null�[0m�[0m
        }

      �[33m~�[0m�[0m metric (known after apply)
      �[31m-�[0m�[0m metric {
          �[31m-�[0m�[0m category = "AllMetrics" �[90m-> null�[0m�[0m
          �[31m-�[0m�[0m enabled  = true �[90m-> null�[0m�[0m

          �[31m-�[0m�[0m retention_policy {
              �[31m-�[0m�[0m days    = 0 �[90m-> null�[0m�[0m
              �[31m-�[0m�[0m enabled = false �[90m-> null�[0m�[0m
            }
        }
    }

�[1mPlan:�[0m 3 to add, 0 to change, 3 to destroy.
�[0m�[33m╷�[0m�[0m
�[33m│�[0m �[0m�[1m�[33mWarning: �[0m�[0m�[1mArgument is deprecated�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m�[0m  with module.ai_service.azurerm_monitor_diagnostic_setting.diagnostic_setting_cognitive_account["0"],
�[33m│�[0m �[0m  on .terraform/modules/ai_service/modules/aiservice/diagnostics.tf line 1, in resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account":
�[33m│�[0m �[0m   1: resource "azurerm_monitor_diagnostic_setting" "diagnostic_setting_cognitive_account" �[4m{�[0m�[0m
�[33m│�[0m �[0m
�[33m│�[0m �[0m`metric` has been deprecated in favor of the `enabled_metric` property and
�[33m│�[0m �[0mwill be removed in v5.0 of the AzureRM provider
�[33m│�[0m �[0m
�[33m│�[0m �[0m(and 2 more similar warnings elsewhere)
�[33m╵�[0m�[0m
�[90m
─────────────────────────────────────────────────────────────────────────────�[0m

Note: You didn't use the -out option to save this plan, so Terraform can't
guarantee to take exactly these actions if you run "terraform apply" now.
Releasing state lock. This may take a few moments...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants