{"openapi":"3.1.0","info":{"title":"Pulumi Insights (BYOK) API","version":"0.1.0","description":"Pulumi Insights (BYOK) lets an AI assistant read your own Pulumi Insights data through the Pulumi Insights API with a key you supply (Pulumi access token (pul-...)). Read-only: 9 tools (list_insights_accounts, get_insights_account, get_insights_scan_settings, list_insights_scans, get_insights_scan, list_insights_account_policy_packs, get_insights_account_tags, get_resources_under_management,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pulumi-insights.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pulumi-insights/docs"},"termsOfService":"https://connectorbay.com/byok-pulumi-insights/terms"},"servers":[{"url":"https://byok-pulumi-insights.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pulumi-insights/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_insights_accounts":{"post":{"operationId":"list_insights_accounts","summary":"List the cloud accounts connected to Pulumi Insights with provider and whether scheduled discovery is on. Filter by pare","description":"List the cloud accounts connected to Pulumi Insights with provider and whether scheduled discovery is on. Filter by parent account. Use for \"Which cloud accounts are connected to Pulumi Insights in acme\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"parent":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only child accounts of this parent account name.","title":"Parent"},"count":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Accounts per page.","title":"Count"},"continuation_token":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from the previous answer's continuationToken field, to get the next page.","title":"Continuation Token"}},"required":["org_name"],"title":"list_insights_accountsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_insights_account":{"post":{"operationId":"get_insights_account","summary":"Get one Insights account: provider, whether scheduled scans are on and the status of its last discovery scan. Use for \"W","description":"Get one Insights account: provider, whether scheduled scans are on and the status of its last discovery scan. Use for \"When did the aws-prod Insights account last finish a scan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"}},"required":["org_name","account_name"],"title":"get_insights_accountArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_insights_scan_settings":{"post":{"operationId":"get_insights_scan_settings","summary":"Get the scheduled discovery scan settings of an Insights account: cron schedule, paused flag and concurrency. Use for \"H","description":"Get the scheduled discovery scan settings of an Insights account: cron schedule, paused flag and concurrency. Use for \"How often does the aws-prod Insights account scan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"}},"required":["org_name","account_name"],"title":"get_insights_scan_settingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_insights_scans":{"post":{"operationId":"list_insights_scans","summary":"List the discovery scan history of an Insights account with status, resource count and start and finish times. Use for \"","description":"List the discovery scan history of an Insights account with status, resource count and start and finish times. Use for \"Did the recent scans of the aws-prod Insights account succeed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Scans per page.","title":"Page Size"},"continuation_token":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from the previous answer's continuationToken field, to get the next page.","title":"Continuation Token"}},"required":["org_name","account_name"],"title":"list_insights_scansArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_insights_scan":{"post":{"operationId":"get_insights_scan","summary":"Get one Insights discovery scan: status, resource count and timestamps. Use for \"What was the result of Insights scan s1","description":"Get one Insights discovery scan: status, resource count and timestamps. Use for \"What was the result of Insights scan s1 for aws-prod\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"},"scan_id":{"description":"Scan identifier, as shown by list_insights_scans.","maxLength":100,"title":"Scan Id","type":"string"}},"required":["org_name","account_name","scan_id"],"title":"get_insights_scanArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_insights_account_policy_packs":{"post":{"operationId":"list_insights_account_policy_packs","summary":"List the policy packs that analyze resources in an Insights account, with version and version tag. Use for \"Which policy","description":"List the policy packs that analyze resources in an Insights account, with version and version tag. Use for \"Which policy packs scan the aws-prod Insights account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"},"continuation_token":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"description":"Token from the previous answer's continuationToken field, to get the next page.","title":"Continuation Token"}},"required":["org_name","account_name"],"title":"list_insights_account_policy_packsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_insights_account_tags":{"post":{"operationId":"get_insights_account_tags","summary":"Get the tags set on an Insights account as a name to value map. Use for \"What tags does the aws-prod Insights account ha","description":"Get the tags set on an Insights account as a name to value map. Use for \"What tags does the aws-prod Insights account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"account_name":{"description":"Pulumi Insights account name, as shown by list_insights_accounts.","maxLength":200,"title":"Account Name","type":"string"}},"required":["org_name","account_name"],"title":"get_insights_account_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_resources_under_management":{"post":{"operationId":"get_resources_under_management","summary":"Get resources under management (RUM) and resource hours (Pulumi credits) per time bucket for an organization. Use for \"H","description":"Get resources under management (RUM) and resource hours (Pulumi credits) per time bucket for an organization. Use for \"How many resources did acme manage with Pulumi each day this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"granularity":{"anyOf":[{"enum":["hourly","daily","weekly","monthly","yearly"],"type":"string"},{"type":"null"}],"default":"daily","description":"Time bucket size for the usage rows.","title":"Granularity"},"lookback_days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many days back to report (hourly is limited to 2).","title":"Lookback Days"}},"required":["org_name"],"title":"get_resources_under_managementArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_discovered_resources_usage":{"post":{"operationId":"get_discovered_resources_usage","summary":"Get discovered resources (Insights) per time bucket for an organization. Use for \"How many cloud resources has Pulumi In","description":"Get discovered resources (Insights) per time bucket for an organization. Use for \"How many cloud resources has Pulumi Insights discovered in acme per day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"org_name":{"description":"Pulumi organization name, for example 'acme'.","maxLength":100,"title":"Org Name","type":"string"},"granularity":{"anyOf":[{"enum":["hourly","daily","weekly","monthly","yearly"],"type":"string"},{"type":"null"}],"default":"daily","description":"Time bucket size for the usage rows.","title":"Granularity"},"lookback_days":{"anyOf":[{"maximum":365,"minimum":1,"type":"integer"},{"type":"null"}],"default":30,"description":"How many days back to report (hourly is limited to 2).","title":"Lookback Days"}},"required":["org_name"],"title":"get_discovered_resources_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}