openapi: 3.0.1 security: - BearerAuth: [] servers: - description: ThousandEyes API production URL url: https://api.thousandeyes.com/v7 info: version: 7.0.100 title: Cloud Insights Integrations API description: "**Note:** All Cloud Insights APIs are not available for ThousandEyes for Government instance.\n\nThe Cloud\ \ Insights Integrations API lets you programmatically manage **AWS** and **Azure** monitoring integrations in ThousandEyes.\n\ \n\n### What You Can Do\n\n- **List** all integrations.\n\n- **Get** details for a specific integration.\n\n- **Delete**\ \ an existing integration.\n\n- **Create** integrations for:\n\n - **AWS**: inventory monitoring and flow logs monitoring.\n\ \ \n - **Azure**: inventory monitoring and flow logs monitoring.\n\n- **Update** integrations for:\n\n - **Azure**:\ \ inventory monitoring and flow logs monitoring.\n \n- **Fetch AWS IAM policy documents** required to configure AWS inventory\ \ and flow-logs integrations.\n\n- **Retrieve** the current AWS and Azure integration policy settings to understand which\ \ AWS and Azure resource groups, AWS regions, Azure subscription rules are enabled and whether CloudTrail is enabled for\ \ Cloud Insights for inventory monitoring.\n\n- **Update** policy settings to change the approved AWS resource groups,\ \ AWS regions, and Azure subscription rules that ThousandEyes should inventory.\n\n\n### Scope and Tenancy\n\nAll operations\ \ are scoped to the authenticated account group. Responses include only resources associated with that group.\n\n\n###\ \ Payloads and formats\n\n- **Requests:** `application/json`\n\n- **Responses:** primarily `application/hal+json` for\ \ resource representations and `application/json` for policy documents.\n\n- HAL responses include `_links` with a `self`\ \ relation for direct navigation.\n\n\n### Integration Types\n\n- **Inventory monitoring**\n\n - AWS: reads inventory\ \ and network topology via read-only IAM permissions.\n \n - Azure: authenticates with a Service Principal to read inventory\ \ and network topology.\n \n- **Flow logs monitoring**\n\n - AWS: reads flow logs from S3 buckets and uses SNS for notifications.\n\ \ \n - Azure: reads flow logs via **Service Bus Queue** (`serviceBusQueueUrl`).\n \n\n### Policy Helpers (AWS)\n\n\ Dedicated endpoints return **Trusted Policy**, **Permissions Policy**, and **SNS Topic Access Policy** documents to simplify\ \ role setup for inventory and flow logs integrations.\n\n\n### Notes\n\n- All example values in this specification are\ \ **fictitious**.\n\n\nFor more information about Cloud Insights, see [Cloud Insights](https://docs.thousandeyes.com/product-documentation/cloud-insights).\n" x-provenance: method: harvested authored_by: Cisco ThousandEyes harvested_by: API Evangelist harvested_on: '2026-08-19' first_party: true provider_published: true source_host: pubhub.devnetcloud.com note: 27 OpenAPI 3.0 documents (26 per-area plus a unified 326-operation document) served anonymously from Cisco's DevNet CDN. api.thousandeyes.com itself 401s every path, so the contract is public while the API host is gated. x-evidence: - type: source url: https://pubhub.devnetcloud.com/media/000-v7-apis/docs/reference/ - type: source url: https://developer.cisco.com/docs/thousandeyes/ tags: - name: Cloud Insights Integrations description: Manage Cloud Insights integrations for AWS and Azure. - name: Cloud Insights Integration Policy Settings description: Manage Cloud Insights integration policy settings for AWS and Azure. paths: /cloud-insights/integration/aws: get: tags: - Cloud Insights Integrations summary: List AWS integrations operationId: getAllAWSMonitoringIntegrations description: Retrieves all AWS inventory and flow logs monitoring integrations configured for the authenticated account group in ThousandEyes. parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: 'The response is an array of integration objects, where each object represents either an Inventory Monitoring or Flow Logs Monitoring integration. Each integration includes metadata such as: id — the unique identifier of the integration; name — the user-defined name of the integration; roleArn — the AWS IAM role ARN that ThousandEyes assumes to access your AWS resources; externalId — the external identifier used for secure cross-account role assumption; monitoringType — specifies whether the integration monitors AWS inventory (inventory-monitoring) or flow logs (flow-logs-monitoring); snsTopicsArns — a list of SNS topic ARNs used for flow logs monitoring (only present for flow logs monitoring integrations); links — HAL-style link relations that provide the "self" URL for retrieving integration details. This endpoint can be used to: audit all existing AWS integrations configured for Cloud Insights, identify which integrations are set up for inventory versus flow logs monitoring, and retrieve integration IDs for further API operations such as inspection (GET /cloud-insights/integration/aws/{integrationId}) or deletion (DELETE). The response is returned as a JSON array conforming to the AwsMonitoringIntegration schema. ' content: application/hal+json: schema: $ref: '#/components/schemas/AwsMonitoringIntegrations' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/{integrationId}: get: tags: - Cloud Insights Integrations summary: Get AWS integration operationId: getAWSMonitoringIntegration description: Retrieves details for a specific AWS inventory or flow logs monitoring integration associated with the authenticated account group using the unique integration ID. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' responses: '200': description: 'The response contains a single integration object representing either: AWS inventory monitoring integration or AWS flow logs monitoring integration. Each integration includes metadata that defines its configuration: id — the unique identifier of the integration; name — the user-defined name of the integration; roleArn — the AWS IAM role ARN that ThousandEyes assumes to access your AWS resources; externalId — the external identifier used for secure cross-account role assumption; monitoringType — identifies whether the integration monitors AWS inventory (inventory-monitoring) or flow logs (flow-logs-monitoring); snsTopicsArns — a list of SNS topic ARNs associated with flow logs monitoring (only present for flow-logs-monitoring integrations); links — HAL-style link relations that include a self URL pointing to this integration resource. This endpoint is typically used to: retrieve detailed configuration information for a specific AWS integration, verify that the integration is correctly set up and associated with the expected AWS IAM role, and obtain integration details before performing deletion or troubleshooting operations. ' content: application/hal+json: schema: $ref: '#/components/schemas/AwsMonitoringIntegration' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' delete: tags: - Cloud Insights Integrations summary: Delete AWS integration operationId: deleteAwsMonitoringIntegration description: Deletes a specific AWS inventory or flow logs monitoring integration using the AWS integration ID. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/inventory: post: tags: - Cloud Insights Integrations summary: Create AWS inventory monitoring integration operationId: createAWSInventoryMonitoringIntegration description: Creates a new AWS inventory monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AwsInventoryIntegrationRequest' responses: '201': description: AWS inventory monitoring integration created successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AwsMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/flow-logs: post: tags: - Cloud Insights Integrations summary: Create AWS flow logs monitoring integration operationId: createAWSFlowLogsMonitoringIntegration description: Creates a new AWS flow logs monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AwsFlowLogsIntegrationRequest' responses: '201': description: AWS flow logs monitoring integration created successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AwsMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/inventory/policies: get: tags: - Cloud Insights Integrations summary: Get AWS inventory monitoring IAM policies operationId: getAWSInventoryMonitoringIntegrationPolicies description: Retrieves the AWS IAM policies required to configure an AWS inventory monitoring integration in JSON string format for the authenticated account group. parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: 'The response includes a JSON object containing two key policy documents: 1) Trusted Policy — defines the trust relationship that allows ThousandEyes to assume a specified AWS IAM role through sts:AssumeRole. This policy includes the Principal ARN for ThousandEyes and the required ExternalId condition; 2) Permissions Policy — lists the AWS service-level read permissions needed by ThousandEyes Cloud Insights to inventory network resources. These permissions cover services such as EC2, VPC, Transit Gateway, Direct Connect, CloudFront, ELB, CloudTrail, ECS/EKS, and S3. Use these policies when creating or updating the IAM role that ThousandEyes will use for inventory monitoring. The response is returned as a JSON string in the policies object. ' content: application/json: schema: $ref: '#/components/schemas/AwsMonitoringPoliciesJsonString' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/flow-logs/policies: get: tags: - Cloud Insights Integrations summary: Get AWS flow logs monitoring IAM policies operationId: getAWSFlowlogsMonitoringIntegrationPolicies description: Retrieves the AWS IAM policies required to configure an AWS flow logs monitoring integration in JSON string format for the authenticated account group. parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: 'The response contains a JSON object with the following policy documents under the policies key: 1) Trusted Policy — defines the trust relationship that allows ThousandEyes to assume a specified AWS IAM role via sts:AssumeRole. This includes the Principal ARN for ThousandEyes and the required ExternalId condition for secure cross-account access; 2) Permissions Policy — grants ThousandEyes read-only access to the Amazon S3 buckets where flow logs are stored. The policy includes permissions such as s3:GetObject and s3:ListBucket, scoped to the relevant flow log S3 bucket ARNs; 3) SNS Topic Access Policy — allows ThousandEyes to subscribe to Amazon SNS topics that receive flow log delivery notifications. It also enables the S3 service to publish events to those topics, ensuring ThousandEyes can be notified of new log data. This policy includes permissions for both SNS:Subscribe (for ThousandEyes) and SNS:Publish (for S3 event notifications). Use these policies when configuring the IAM role and SNS topic permissions required by ThousandEyes Cloud Insights to collect and monitor AWS flow logs data across your account. The response is returned as a JSON string in the policies object. ' content: application/json: schema: $ref: '#/components/schemas/AwsMonitoringPoliciesJsonString' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure: get: tags: - Cloud Insights Integrations summary: List Azure integrations operationId: getAllAzureMonitoringIntegrations description: Retrieves all Azure inventory and flow logs monitoring integrations configured for the authenticated account group in ThousandEyes. parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: 'The response is an array of integration objects, where each object represents either an Azure Inventory Monitoring or Azure Flow Logs Monitoring integration. Each integration includes metadata such as: id — the unique identifier of the integration; name — the user-defined name of the integration; appId / clientId — the Azure Application (client) ID of the service principal used for authentication; password / clientSecret — the client secret value associated with the service principal (note: for security reasons, the actual secret is never returned. The response includes a masked value ("********") instead); azureTenantId — the Azure Active Directory tenant ID associated with the integration; serviceBusQueueUrl — the Service Bus queue URL used for flow logs monitoring (only present for azure-flow-logs-monitoring integrations); monitoringType — specifies whether the integration monitors Azure resources (azure-inventory-monitoring) or Azure flow logs (azure-flow-logs-monitoring); links — HAL-style link relations that provide the "self" URL for retrieving integration details. This endpoint can be used to: audit all existing Azure integrations configured for Cloud Insights, identify which integrations are configured for inventory versus flow logs monitoring, and retrieve integration IDs for further API operations such as inspection (GET /cloud-insights/integration/azure/{integrationId}) or deletion (DELETE). The response is returned as a JSON array conforming to the AwsMonitoringIntegration schema. ' content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegrations' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/{integrationId}: get: tags: - Cloud Insights Integrations summary: Get Azure integration operationId: getAzureMonitoringIntegration description: Retrieves details for a specific Azure inventory or flow logs monitoring integration associated with the authenticated account group using the unique integration ID. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' responses: '200': description: 'The response contains a single integration object representing either: Azure Inventory Monitoring integration or Azure Flow Logs Monitoring integration. Each integration includes metadata that defines its configuration: id — the unique identifier of the integration; name — the user-defined name of the integration; appId / clientId — the Azure Application (client) ID of the service principal used for authentication; password / clientSecret — the client secret value associated with the service principal (note: for security reasons, the actual secret is never returned. The response includes a masked value ("********") instead; azureTenantId — the Azure Active Directory tenant ID for the integration; serviceBusQueueUrl — the Service Bus queue URL used for receiving Flow Logs (only present for azure-flow-logs-monitoring integrations); monitoringType — identifies whether the integration monitors Azure resources (azure-inventory-monitoring) or flow logs (azure-flow-logs-monitoring); links — HAL-style link relations that include a "self" URL pointing to this integration resource. This endpoint is typically used to: retrieve detailed configuration information for a specific Azure integration, validate that the integration credentials and type (inventory or flow logs) are correctly configured, and obtain integration details before performing update or deletion operations. ' content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegration' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' delete: tags: - Cloud Insights Integrations summary: Delete Azure integration operationId: deleteAzureMonitoringIntegration description: Deletes a specific Azure inventory or flow logs monitoring integration using the Azure integration ID. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' responses: '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/inventory: post: tags: - Cloud Insights Integrations summary: Create Azure inventory monitoring integration operationId: createAzureInventoryMonitoringIntegration description: Creates a new Azure inventory monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AzureInventoryIntegrationRequest' responses: '201': description: Azure inventory monitoring integration created successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/flow-logs: post: tags: - Cloud Insights Integrations summary: Create Azure flow logs monitoring integration operationId: createAzureFlowLogsMonitoringIntegration description: Creates a new Azure flow logs monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AzureFlowLogsIntegrationRequest' responses: '201': description: Azure flow logs monitoring integration created successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/inventory/{integrationId}: put: tags: - Cloud Insights Integrations summary: Update Azure inventory monitoring integration operationId: updateAzureInventoryMonitoringIntegration description: Updates an existing Azure inventory monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AzureInventoryIntegrationRequest' responses: '200': description: Azure inventory monitoring integration updated successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/flow-logs/{integrationId}: put: tags: - Cloud Insights Integrations summary: Update Azure flow logs monitoring integration operationId: updateAzureFlowLogsMonitoringIntegration description: Updates an existing Azure flow logs monitoring integration. parameters: - $ref: '#/components/parameters/AccountGroupId' - $ref: '#/components/parameters/IntegrationId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AzureFlowLogsIntegrationRequest' responses: '200': description: Azure flow logs monitoring integration updated successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureMonitoringIntegration' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/aws/policy/settings: get: tags: - Cloud Insights Integration Policy Settings summary: Get AWS integration policy settings operationId: getAWSIntegrationPolicySettings description: 'Retrieves the AWS integration policy settings for the authenticated account group. Use this endpoint to audit which AWS resource group types and AWS regions are enabled, and whether CloudTrail is enabled, for Cloud Insights inventory monitoring. ' parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: AWS integration policy settings returned successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AwsIntegrationPolicySetting' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' put: tags: - Cloud Insights Integration Policy Settings summary: Update AWS integration policy settings operationId: updateAWSIntegrationPolicySettings description: 'Updates the AWS integration policy settings for the authenticated account group. This endpoint lets you enable or disable specific AWS resource group types, adjust the set of AWS regions to inventory, and control whether CloudTrail is enabled for inventory monitoring. ' parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AwsIntegrationPolicySetting' responses: '200': description: AWS integration policy settings updated successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AwsIntegrationPolicySetting' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' /cloud-insights/integration/azure/policy/settings: get: tags: - Cloud Insights Integration Policy Settings summary: Get Azure integration policy settings operationId: getAzureIntegrationPolicySettings description: 'Retrieves the Azure integration policy settings for the authenticated account group. Use this endpoint to review which Azure resource group types are monitored and inspect the subscriptions policy rules that gate which subscriptions ThousandEyes inventories. ' parameters: - $ref: '#/components/parameters/AccountGroupId' responses: '200': description: Azure integration policy settings returned successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureIntegrationPolicySetting' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' put: tags: - Cloud Insights Integration Policy Settings summary: Update Azure integration policy settings operationId: updateAzureIntegrationPolicySettings description: 'Updates the Azure integration policy settings for the authenticated account group. This endpoint lets you enable or disable Azure resource group types and manage the subscriptions policy (rules plus default action) that controls which Azure subscriptions are inventoried. ' parameters: - $ref: '#/components/parameters/AccountGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AzureIntegrationPolicySetting' responses: '200': description: Azure integration policy settings updated successfully. content: application/hal+json: schema: $ref: '#/components/schemas/AzureIntegrationPolicySetting' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' components: securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer authentication token parameters: IntegrationId: name: integrationId in: path description: The unique ID of the AWS or Azure inventory or flow logs monitoring integration. example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569 required: true schema: type: string format: uuid AccountGroupId: name: aid in: query description: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. required: false schema: type: string example: '1234' schemas: AwsInventoryIntegrationRequest: required: - name - roleArn type: object properties: name: type: string description: The name of the AWS inventory monitoring integration. example: integration name roleArn: type: string description: The ARN of the AWS role to be monitored. example: arn:aws:iam::01234567890:role/aws-inventory-ro AwsFlowLogsIntegrationRequest: required: - name - roleArn - snsTopicsArns type: object properties: name: type: string description: The name of the AWS flow logs monitoring integration. example: integration name roleArn: type: string description: The ARN of the AWS role to be monitored. example: arn:aws:iam::01234567890:role/aws-flow-logs-ro snsTopicsArns: type: array items: type: string description: The array of SNS topics ARNs. example: - arn:aws:sns:us-east-1:01234567890:SNS-Topic-US - arn:aws:sns:eu-central-1:01234567890:SNS-Topic-EU AwsMonitoringIntegration: required: - id - name - roleArn - externalId - monitoringType type: object properties: id: type: string format: uuid description: The unique ID for the AWS inventory or flow logs monitoring integration. example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569 name: type: string description: The name of the AWS inventory or flow logs monitoring integration. example: integration name roleArn: type: string description: The ARN of the AWS role to be monitored. example: arn:aws:iam::01234567890:role/aws-monitoring-ro externalId: type: string description: The external ID associated with the account group. example: 37d8f861cffd34212b5a34466564da1f80b01a30 monitoringType: description: The type of monitoring integration. type: string example: inventory-monitoring enum: - inventory-monitoring - flow-logs-monitoring snsTopicsArns: type: array items: type: string description: The array of SNS topic ARNs. Relevant only for flow logs monitoring integrations. example: - arn:aws:sns:us-east-1:01234567890:SNS-Topic-US - arn:aws:sns:eu-central-1:01234567890:SNS-Topic-EU _links: $ref: '#/components/schemas/SelfLinks' AwsMonitoringIntegrations: required: - integrations type: object description: A HAL resource containing a list of AWS monitoring integrations and navigation links. properties: integrations: type: array description: The list of AWS inventory and flow logs monitoring integrations. items: $ref: '#/components/schemas/AwsMonitoringIntegration' _links: $ref: '#/components/schemas/SelfLinks' AzureInventoryIntegrationRequest: required: - name - appId - password - azureTenantId type: object properties: name: type: string description: The name of the Azure inventory monitoring integration. example: integration name appId: type: string description: The Application (client) ID of the service principal. example: 2f9b2a1c-6d87-4c92-9d51-37efc93c0a4f password: type: string description: The client secret value. example: p9z4Q~U7LkdX1yZr3TcB6fJqG8aM0sDeT5R9hVnKw azureTenantId: type: string description: The Azure Active Directory tenant ID. example: e3a72c9b-42b1-4e0b-9b9f-7f6a3b2a1c44 AzureFlowLogsIntegrationRequest: required: - name - appId - password - azureTenantId - serviceBusQueueUrl type: object properties: name: type: string description: The name of the Azure flow logs monitoring integration. example: integration name appId: type: string description: The Application (client) ID of the service principal. example: 2f9b2a1c-6d87-4c92-9d51-37efc93c0a4f password: type: string description: The client secret value. example: p9z4Q~U7LkdX1yZr3TcB6fJqG8aM0sDeT5R9hVnKw azureTenantId: type: string description: The Azure Active Directory tenant ID. example: e3a72c9b-42b1-4e0b-9b9f-7f6a3b2a1c44 serviceBusQueueUrl: type: string description: The URL of the Service Bus Queue. example: https://your-service-bus-namespace.servicebus.windows.net/your-queue-name AzureMonitoringIntegration: required: - id - name - appId - password - azureTenantId - monitoringType type: object properties: id: type: string format: uuid description: The unique ID for the Azure inventory or flow logs monitoring integration. example: e9c3bf02-a48c-4aa8-9e5f-898800d6f569 name: type: string description: The name of the Azure inventory or flow logs monitoring integration. example: integration name appId: type: string description: The Application (client) ID of the service principal. example: 2f9b2a1c-6d87-4c92-9d51-37efc93c0a4f password: type: string description: The client secret value. For security reasons, the client secret value is masked. example: '********' azureTenantId: type: string description: The Azure Active Directory tenant ID. example: e3a72c9b-42b1-4e0b-9b9f-7f6a3b2a1c44 serviceBusQueueUrl: type: string description: The URL of the Service Bus Queue. Relevant only for flow logs monitoring integrations. example: https://your-service-bus-namespace.servicebus.windows.net/your-queue-name monitoringType: description: The type of monitoring integration. type: string example: azure-inventory-monitoring enum: - azure-inventory-monitoring - azure-flow-logs-monitoring _links: $ref: '#/components/schemas/SelfLinks' AzureMonitoringIntegrations: required: - integrations type: object description: A HAL resource containing a list of Azure inventory and flow logs monitoring integrations. properties: integrations: type: array description: The list of Azure inventory and flow logs monitoring integrations. items: $ref: '#/components/schemas/AzureMonitoringIntegration' _links: $ref: '#/components/schemas/SelfLinks' AwsMonitoringPoliciesJsonString: type: string description: JSON policies for AWS monitoring integration as string. AwsIntegrationPolicySetting: type: object required: - enabledResourceGroupTypes - enabledRegions - enabledCloudtrail description: AWS integration policy configuration that controls which resource groups and regions ThousandEyes inventories, and whether CloudTrail is enabled. properties: enabledResourceGroupTypes: type: array description: The set of AWS resource group types included in inventory monitoring. items: $ref: '#/components/schemas/AwsResourceGroupType' example: - ec2 - s3-bucket - global-network enabledRegions: type: array description: The AWS regions that ThousandEyes inventories for the account group. items: $ref: '#/components/schemas/AwsRegion' example: - us-east-1 - eu-west-1 - ap-southeast-2 enabledCloudtrail: type: boolean description: Indicates whether CloudTrail integration is enabled for AWS inventory monitoring. example: true _links: $ref: '#/components/schemas/SelfLinks' AwsResourceGroupType: type: string description: Supported AWS resource group types that can be toggled within policy settings. Note that ec2 is a mandatory resource group type and will be enabled regardless of user configuration. enum: - cloudfront - ec2 - eks-ecs - global-accelerator - direct-connect - s3-bucket - network-firewall - global-network example: ec2 AwsRegion: type: string description: AWS region identifier that can be enabled for Cloud Insights inventory monitoring. enum: - us-east-1 - us-east-2 - us-west-1 - us-west-2 - ca-central-1 - ca-west-1 - mx-central-1 - sa-east-1 - eu-central-1 - eu-west-1 - eu-west-2 - eu-south-1 - eu-west-3 - eu-south-2 - eu-north-1 - eu-central-2 - il-central-1 - me-south-1 - me-central-1 - af-south-1 - ap-east-1 - ap-south-2 - ap-southeast-3 - ap-southeast-5 - ap-southeast-4 - ap-southeast-7 - ap-south-1 - ap-northeast-3 - ap-northeast-2 - ap-southeast-1 - ap-southeast-2 - ap-northeast-1 example: us-east-1 AzureIntegrationPolicySetting: type: object required: - enabledResourceGroupTypes - subscriptionsPolicy description: Azure integration policy configuration that defines the monitored Azure resource groups and the subscription policy that ThousandEyes enforces. properties: enabledResourceGroupTypes: type: array description: The set of Azure resource group types included in inventory monitoring. items: $ref: '#/components/schemas/AzureResourceGroupType' example: - networking - virtual-wan - traffic-manager subscriptionsPolicy: $ref: '#/components/schemas/SubscriptionsPolicy' _links: $ref: '#/components/schemas/SelfLinks' AzureResourceGroupType: type: string description: Supported Azure resource group types that can be toggled within policy settings. Note that networking is a mandatory resource group type and will be enabled regardless of user configuration. enum: - afd - security - express-route - virtual-wan - traffic-manager - networking example: networking SubscriptionsPolicy: type: object required: - rules - defaultAction description: 'Policy document that controls which Azure subscriptions are inventoried. Up to 10 rules can be provided. Rules are evaluated in order; if none match, the defaultAction is applied. ' properties: rules: type: array description: Ordered list of subscription policy rules. Maximum of 10 entries. maxItems: 10 items: $ref: '#/components/schemas/SubscriptionsPolicyRule' defaultAction: $ref: '#/components/schemas/SubscriptionsPolicyRuleAction' example: rules: - field: subscription-name pattern: ^prod-.*$ action: include - field: subscription-id pattern: 3145d332-e1c9-4670-a672-12e17d4f627e action: exclude defaultAction: exclude SubscriptionsPolicyRule: type: object required: - field - pattern - action description: A single subscription rule consisting of a field, pattern, and action. properties: field: $ref: '#/components/schemas/SubscriptionsPolicyRuleField' pattern: type: string description: String or regular expression used to match subscription identifiers or names. example: ^prod-.*$ action: $ref: '#/components/schemas/SubscriptionsPolicyRuleAction' SubscriptionsPolicyRuleField: type: string description: Identifies whether the rule evaluates subscription IDs or subscription names. enum: - subscription-id - subscription-name example: subscription-id SubscriptionsPolicyRuleAction: type: string description: Action applied when a subscriptions policy rule matches. enum: - include - exclude example: include UnauthorizedError: type: object properties: error: type: string example: invalid_token error_description: type: string example: Invalid access token Error: type: object properties: type: type: string description: A URI reference that identifies the problem type. When this member is not present, its value is assumed to be "about:blank". title: type: string description: A short, human-readable summary of the problem type. status: type: integer description: The HTTP status code generated by the origin server for this occurrence of the problem. detail: type: string description: A human-readable explanation specific to this occurrence of the problem. instance: type: string description: A URI reference that identifies the specific occurrence of the problem. ValidationErrorItem: type: object properties: code: type: string description: (Optional) A unique error type/code that can be referenced in the documentation for further details. field: type: string description: Identifies the field that triggered this particular error. message: type: string description: A short, human-readable summary of the error. ValidationError: type: object allOf: - $ref: '#/components/schemas/Error' - type: object properties: errors: nullable: true type: array description: (Optional) When multiple errors occur, the details for each error are listed. items: $ref: '#/components/schemas/ValidationErrorItem' Link: type: object description: A hyperlink from the containing resource to a URI. required: - href properties: href: type: string description: Its value is either a URI [RFC3986] or a URI template [RFC6570]. example: https://api.thousandeyes.com/v7/link/to/resource/id templated: type: boolean description: Should be true when the link object's "href" property is a URI template. type: type: string description: Used as a hint to indicate the media type expected when dereferencing the target resource. deprecation: type: string description: Its presence indicates that the link is to be deprecated at a future date. Its value is a URL that should provide further information about the deprecation. name: type: string description: Its value may be used as a secondary key for selecting link objects that share the same relation type. profile: type: string description: A URI that hints about the profile of the target resource. title: type: string description: Intended for labelling the link with a human-readable identifier hreflang: type: string description: Indicates the language of the target resource SelfLinks: type: object description: A links object containing the self link. readOnly: true properties: self: $ref: '#/components/schemas/Link' responses: '204': description: No content '400': description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' example: type: about:blank title: Request validation failed. There are invalid or missing fields status: 400 detail: Your request object contains invalid fields. instance: /v7 errors: - code: AM-5432 field: firstName message: firstName cannot have fancy characters - code: DASH-5622 field: password message: Password cannot be blank '401': description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Insufficient permissions to query endpoint content: application/problem+json: schema: $ref: '#/components/schemas/Error' '404': description: Not found content: application/problem+json: schema: $ref: '#/components/schemas/Error' example: type: about:blank title: URI Resource Not Found status: 404 detail: Details explaining if the 404 error is related to an invalid URI or a wrong ID instance: /v7 '429': description: Exhausted rate limit for the organization content: application/problem+json: schema: $ref: '#/components/schemas/Error' '500': description: Internal server error content: application/problem+json: schema: $ref: '#/components/schemas/Error' example: type: about:blank title: Internal server error status: 500 detail: Optional detail about the internal error message. instance: /v7