{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Accepts name, environment-spec YAML text, and optional Insights telemetry opt-in. Tenant secrets are declared inside the environment spec (write-only values), not as sibling request fields. Responses never echo secret values; GET/create may include credential slot metadata (name/source/provider only). Configs are immutable after create.","properties":{"body":{"$ref":"#/definitions/agent_config_create_request"}},"required":["body"],"additionalProperties":false,"definitions":{"agent_config_create_request":{"type":"object","additionalProperties":false,"description":"Environment Config create body. Credentials are not request fields: every secret is declared in the environment spec under secrets (or legacy spec.secrets), with tenantSecret slots carrying plaintext in a write-only value extracted into Secrets Manager and never returned.","required":["name","manifest_yaml"],"properties":{"name":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z0-9]([A-Za-z0-9._-]{0,62}[A-Za-z0-9])?$","description":"Config name, case-insensitively unique among the team's active configs.","examples":["support-agent"]},"manifest_yaml":{"type":"string","maxLength":524288,"description":"Customer environment-spec YAML text. The HTTP JSON body is capped at 1 MiB and this field is capped at 512 KiB.","examples":["apiVersion: agents.digitalocean.com/v1alpha1\nkind: Agent\nspec:\n  runtime:\n    adapter: opencode\n"]},"insights":{"allOf":[{"$ref":"#/definitions/insights_opt_in"},{"description":"Optional per-signal Insights telemetry opt-in. Travels beside manifest_yaml, never inside it: the manifest is immutable and content-hashed, while this value can be changed later from the Insights settings page. When omitted, no choice is recorded and the product default applies."}]}}},"insights_opt_in":{"type":"object","additionalProperties":false,"properties":{"metrics":{"type":["boolean","null"],"description":"Accepted and stored for parity with the Insights schema, but metrics are always collected: unregistered metrics are dropped at ingest rather than opted out of here."},"logs":{"type":["boolean","null"],"description":"Whether the agent's logs are sent to Insights."},"traces":{"type":["boolean","null"],"description":"Whether the agent's traces are sent to Insights."}},"description":"Per-signal DigitalOcean Insights telemetry opt-in, mirroring the Insights-owned schema insights.telemetry.opt_in. Each signal is independently optional and tri-state: omitted or null records that the customer expressed no choice and falls back to the product default, which is NOT equivalent to false."}}},"name":"Create an Environment Config (environment spec + optional Insights opt-in).","id":"digitalocean.harness_create_config","example":{"body":{"name":"support-agent","manifest_yaml":"apiVersion: agents.digitalocean.com/v1alpha1\nkind: Agent\nspec:\n  runtime:\n    adapter: opencode\n"}},"maxRequests":1,"summary":false}}