{
  "name": "azure_ai_foundry",
  "title": "Microsoft Foundry",
  "version": "0.9.0",
  "release": "beta",
  "source": {
    "license": "Elastic-2.0"
  },
  "description": "Collects Microsoft Foundry logs and metrics",
  "type": "integration",
  "download": "/epr/azure_ai_foundry/azure_ai_foundry-0.9.0.zip",
  "path": "/package/azure_ai_foundry/0.9.0",
  "icons": [
    {
      "src": "/img/microsoft_foundry.jpeg",
      "path": "/package/azure_ai_foundry/0.9.0/img/microsoft_foundry.jpeg",
      "title": "Microsoft Foundry logo",
      "size": "32x32",
      "type": "image/svg+xml"
    }
  ],
  "conditions": {
    "kibana": {
      "version": "~9.2.4 || ^9.3.0"
    },
    "elastic": {
      "subscription": "basic"
    }
  },
  "owner": {
    "type": "elastic",
    "github": "elastic/obs-infraobs-integrations"
  },
  "categories": [
    "azure",
    "cloud",
    "observability",
    "security"
  ],
  "signature_path": "/epr/azure_ai_foundry/azure_ai_foundry-0.9.0.zip.sig",
  "format_version": "3.4.0",
  "readme": "/package/azure_ai_foundry/0.9.0/docs/README.md",
  "license": "basic",
  "screenshots": [
    {
      "src": "/img/azure_ai_foundry_overview_1.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_overview_1.png",
      "title": "Microsoft Foundry Overview",
      "size": "600x600",
      "type": "image/png"
    },
    {
      "src": "/img/azure_ai_foundry_overview_2.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_overview_2.png",
      "title": "Microsoft Foundry Overview",
      "size": "600x600",
      "type": "image/png"
    },
    {
      "src": "/img/azure_ai_foundry_billing.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_billing.png",
      "title": "Microsoft Foundry Billing",
      "size": "600x600",
      "type": "image/png"
    },
    {
      "src": "/img/azure_ai_foundry_apim_overview.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_apim_overview.png",
      "title": "Microsoft Foundry Overview",
      "size": "600x600",
      "type": "image/png"
    },
    {
      "src": "/img/azure_ai_foundry_guardrails_1.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_guardrails_1.png",
      "title": "Microsoft Foundry Guardrails",
      "size": "600x600",
      "type": "image/png"
    },
    {
      "src": "/img/azure_ai_foundry_guardrails_2.png",
      "path": "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_guardrails_2.png",
      "title": "Microsoft Foundry Guardrails",
      "size": "600x600",
      "type": "image/png"
    }
  ],
  "assets": [
    "/package/azure_ai_foundry/0.9.0/LICENSE.txt",
    "/package/azure_ai_foundry/0.9.0/changelog.yml",
    "/package/azure_ai_foundry/0.9.0/manifest.yml",
    "/package/azure_ai_foundry/0.9.0/validation.yml",
    "/package/azure_ai_foundry/0.9.0/docs/README.md",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_apim_overview.png",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_billing.png",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_guardrails_1.png",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_guardrails_2.png",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_overview_1.png",
    "/package/azure_ai_foundry/0.9.0/img/azure_ai_foundry_overview_2.png",
    "/package/azure_ai_foundry/0.9.0/img/microsoft_foundry.jpeg",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/manifest.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/sample_event.json",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/manifest.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/sample_event.json",
    "/package/azure_ai_foundry/0.9.0/kibana/alerting_rule_template/azure_ai_foundry-latency-spike.json",
    "/package/azure_ai_foundry/0.9.0/kibana/alerting_rule_template/azure_ai_foundry-model-availability.json",
    "/package/azure_ai_foundry/0.9.0/kibana/alerting_rule_template/azure_ai_foundry-provisioned-utilization.json",
    "/package/azure_ai_foundry/0.9.0/kibana/dashboard/azure_ai_foundry-09e1aa79-9d15-4bbe-a32c-85766864fa6a.json",
    "/package/azure_ai_foundry/0.9.0/kibana/dashboard/azure_ai_foundry-0d923e01-2082-4ba0-a1a3-335ad53f1a00.json",
    "/package/azure_ai_foundry/0.9.0/kibana/dashboard/azure_ai_foundry-284b4e05-3349-401b-94fe-9136cdb4b2fd.json",
    "/package/azure_ai_foundry/0.9.0/kibana/dashboard/azure_ai_foundry-2b21bfb1-6fc2-45c5-9f0f-1e15aaab5245.json",
    "/package/azure_ai_foundry/0.9.0/kibana/search/azure_ai_foundry-be6bcfb8-fc7d-412d-9ef7-e0b7c6ceb8ee.json",
    "/package/azure_ai_foundry/0.9.0/kibana/search/azure_ai_foundry-c619166c-9706-4a45-90d8-19c95899cd85.json",
    "/package/azure_ai_foundry/0.9.0/kibana/search/azure_ai_foundry-dd302b35-4d01-4269-aee8-aa56850135d9.json",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/fields/base-fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/fields/fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/fields/package-fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/fields/base-fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/fields/fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/fields/package-fields.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/agent/stream/azure-eventhub.yml.hbs",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/agent/stream/stream.yml.hbs",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/elasticsearch/ingest_pipeline/azure-shared-pipeline.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/logs/elasticsearch/ingest_pipeline/default.yml",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/agent/stream/stream.yml.hbs",
    "/package/azure_ai_foundry/0.9.0/data_stream/metrics/elasticsearch/ingest_pipeline/default.yml"
  ],
  "policy_templates": [
    {
      "name": "azure_ai_foundry",
      "title": "Collects Microsoft Foundry logs and metrics",
      "description": "Microsoft Foundry metrics with Elastic Agent.",
      "data_streams": [
        "logs",
        "metrics"
      ],
      "inputs": [
        {
          "type": "azure-eventhub",
          "title": "Collect Microsoft Foundry logs from Event Hub",
          "description": "Collecting Microsoft Foundry logs from Azure (input: azure-eventhub)",
          "input_group": "logs"
        },
        {
          "type": "azure/metrics",
          "title": "Collect Microsoft Foundry metrics",
          "description": "Collecting Microsoft Foundry metrics",
          "input_group": "metrics"
        }
      ],
      "multiple": true,
      "categories": [
        "azure",
        "cloud"
      ]
    }
  ],
  "data_streams": [
    {
      "type": "logs",
      "dataset": "azure_ai_foundry.logs",
      "title": "Collect Microsoft Foundry logs",
      "release": "beta",
      "ingest_pipeline": "default",
      "streams": [
        {
          "input": "azure-eventhub",
          "vars": [
            {
              "name": "eventhub",
              "type": "text",
              "title": "Event Hub",
              "description": "Elastic recommends using one event hub for each integration. Visit [Create an event hub](https://docs.elastic.co/integrations/azure#create-an-event-hub) to learn more. Use event hub names up to 30 characters long to avoid compatibility issues.",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "consumer_group",
              "type": "text",
              "title": "Consumer Group",
              "multi": false,
              "required": true,
              "show_user": true,
              "default": "$Default"
            },
            {
              "name": "auth_type",
              "type": "select",
              "title": "Authentication Type",
              "description": "Authentication method to use for Event Hub and Storage Account. When set to **Connection String** or left blank: **Connection String** and **Storage Account Key** are required. When set to **Client Secret**: Microsoft Entra ID client secret authentication is used, requiring **Tenant ID**, **Client ID**, **Client Secret**, and **Event Hub Namespace**. Note: The same authentication type applies to both Event Hub and Storage Account for security consistency.",
              "multi": false,
              "required": true,
              "show_user": true,
              "default": "connection_string"
            },
            {
              "name": "connection_string",
              "type": "password",
              "title": "Connection String",
              "description": "(Required when **Authentication Type** is **Connection String** or left blank) The connection string required to communicate with Event Hubs. See [Get an Event Hubs connection string](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-get-connection-string) to learn more.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "storage_account_key",
              "type": "password",
              "title": "Storage Account Key",
              "description": "(Required when **Authentication Type** is **Connection String** or left blank) The storage account key used to authorize access to data in your storage account. Not used when **Authentication Type** is **Client Secret**; client secret authentication is used for storage instead.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "storage_account",
              "type": "text",
              "title": "Storage Account",
              "description": "The name of the storage account where the consumer group's state/offsets will be stored and updated.",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "eventhub_namespace",
              "type": "text",
              "title": "Event Hub Namespace",
              "description": "(Required when **Authentication Type** is **Client Secret**) Fully qualified Event Hub namespace (e.g., namespace.servicebus.windows.net). Do not use the short namespace name; use the complete FQDN.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "tenant_id",
              "type": "text",
              "title": "Tenant ID",
              "description": "(Required when **Authentication Type** is **Client Secret**) Microsoft Entra ID tenant ID. This is the directory/tenant where your Microsoft Entra ID application is registered.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "client_id",
              "type": "text",
              "title": "Client ID",
              "description": "(Required when **Authentication Type** is **Client Secret**) Microsoft Entra ID application (client) ID. The service principal must have 'Azure Event Hubs Data Receiver' role on the Event Hub and 'Storage Blob Data Contributor' role on the Storage Account.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "client_secret",
              "type": "password",
              "title": "Client Secret",
              "description": "(Required when **Authentication Type** is **Client Secret**) Microsoft Entra ID application client secret. Generate this secret in your Microsoft Entra ID app registration.",
              "multi": false,
              "required": false,
              "show_user": true
            },
            {
              "name": "authority_host",
              "type": "text",
              "title": "Authority Host",
              "description": "(Optional when **Authentication Type** is **Client Secret**) Microsoft Entra ID authority endpoint. Defaults to https://login.microsoftonline.com (Azure Public Cloud). Change for other Azure environments: Azure Government (https://login.microsoftonline.us), Azure China (https://login.chinacloudapi.cn), or Azure Germany (https://login.microsoftonline.de).",
              "multi": false,
              "required": false,
              "show_user": false,
              "default": "https://login.microsoftonline.com"
            },
            {
              "name": "preserve_original_event",
              "type": "bool",
              "title": "Preserve original event",
              "description": "Preserves a raw copy of the original event, added to the field `event.original`",
              "multi": false,
              "required": true,
              "show_user": true,
              "default": false
            },
            {
              "name": "storage_account_container",
              "type": "text",
              "title": "Storage Account Container",
              "description": "The storage account container where the integration stores the checkpoint data for the consumer group. It is an advanced option to use with extreme care. You MUST use a dedicated storage account container for each Azure log type (activity, sign-in, audit logs, and others). DO NOT REUSE the same container name for more than one Azure log type. See [Container Names](https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata#container-names) for details on naming rules from Microsoft. The integration generates a default container name if not specified.\n",
              "multi": false,
              "required": false,
              "show_user": false
            },
            {
              "name": "tags",
              "type": "text",
              "title": "Tags",
              "multi": true,
              "required": true,
              "show_user": false,
              "default": [
                "azure-aifoundry-logs",
                "forwarded"
              ]
            },
            {
              "name": "processors",
              "type": "yaml",
              "title": "Processors",
              "description": "Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details.",
              "multi": false,
              "required": false,
              "show_user": false
            },
            {
              "name": "sanitize_newlines",
              "type": "bool",
              "title": "Sanitizes New Lines",
              "description": "Removes new lines in logs to ensure proper formatting of JSON data and avoid parsing issues during processing.",
              "multi": false,
              "required": true,
              "show_user": false,
              "default": true
            },
            {
              "name": "sanitize_singlequotes",
              "type": "bool",
              "title": "Sanitizes Single Quotes",
              "description": "Replaces single quotes with double quotes (single quotes inside double quotes are omitted) in logs to ensure proper formatting of JSON data and avoid parsing issues during processing.",
              "multi": false,
              "required": true,
              "show_user": false,
              "default": true
            }
          ],
          "template_path": "azure-eventhub.yml.hbs",
          "title": "Microsoft Foundry logs",
          "description": "Collect Microsoft Foundry logs using azure-eventhub input",
          "enabled": true,
          "ingestion_method": "Azure Event Hub"
        }
      ],
      "package": "azure_ai_foundry",
      "path": "logs"
    },
    {
      "type": "metrics",
      "dataset": "azure.ai_foundry",
      "title": "Collect Microsoft Foundry metrics",
      "release": "beta",
      "ingest_pipeline": "default",
      "streams": [
        {
          "input": "azure/metrics",
          "vars": [
            {
              "name": "client_id",
              "type": "text",
              "title": "Client ID",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "client_secret",
              "type": "text",
              "title": "Client Secret",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "tenant_id",
              "type": "text",
              "title": "Tenant ID",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "subscription_id",
              "type": "text",
              "title": "Subscription ID",
              "multi": false,
              "required": true,
              "show_user": true
            },
            {
              "name": "refresh_list_interval",
              "type": "text",
              "title": "Refresh list interval",
              "multi": false,
              "required": false,
              "show_user": true,
              "default": "600s"
            },
            {
              "name": "period",
              "type": "text",
              "title": "Period",
              "multi": false,
              "required": true,
              "show_user": true,
              "default": "300s"
            },
            {
              "name": "resource_groups",
              "type": "text",
              "title": "Resource Groups",
              "multi": true,
              "required": false,
              "show_user": true
            },
            {
              "name": "resource_ids",
              "type": "text",
              "title": "Resource IDs",
              "multi": true,
              "required": false,
              "show_user": true
            },
            {
              "name": "processors",
              "type": "yaml",
              "title": "Processors",
              "description": "Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the events are shipped. See [Processors](https://www.elastic.co/guide/en/fleet/current/elastic-agent-processor-configuration.html) for details.\n",
              "multi": false,
              "required": false,
              "show_user": false
            }
          ],
          "template_path": "stream.yml.hbs",
          "title": "Azure AI Foundry metrics",
          "description": "Collect AI Foundry metrics",
          "enabled": true,
          "ingestion_method": "API"
        }
      ],
      "package": "azure_ai_foundry",
      "elasticsearch": {
        "ingest_pipeline.name": "default"
      },
      "path": "metrics"
    }
  ],
  "vars": [
    {
      "name": "resource_manager_endpoint",
      "type": "text",
      "title": "Resource Manager Endpoint",
      "multi": false,
      "required": false,
      "show_user": true
    }
  ]
}
