Skip to main content

SetCrowdyStudioAgentAppPolicyInput

Patch an app's Agentic Studio policy. Requires manage_compute. Omitted fields stay unchanged; all supplied authority and limits are clamped to platform policy.

input SetCrowdyStudioAgentAppPolicyInput {
enabled: Boolean
killSwitch: Boolean
allowedModelIds: [String!]
allowedToolNames: [String!]
allowedModes: [CrowdyStudioAgentMode!]
allowedRiskClasses: [CrowdyStudioAgentRiskClass!]
turnLimits: CrowdyStudioAgentTurnLimitsInput
sessionLimits: CrowdyStudioAgentSessionLimitsInput
playerDayLimits: CrowdyStudioAgentPlayerDayLimitsInput
retention: CrowdyStudioAgentRetentionPolicyInput
privacy: CrowdyStudioAgentPrivacyPolicyInput
appId: BigInt!
expectedRevision: BigInt
idempotencyKey: String!
}

Fields

SetCrowdyStudioAgentAppPolicyInput.enabled ● Boolean scalar

Enable or disable this policy layer.

SetCrowdyStudioAgentAppPolicyInput.killSwitch ● Boolean scalar

Set or clear this layer kill switch. Kill always wins over enablement.

SetCrowdyStudioAgentAppPolicyInput.allowedModelIds ● [String!] list scalar

Replacement exact model allowlist (max 64). On an APP patch every id must already be in the platform allowlist or the whole write is refused with AGENT_POLICY_INVALID naming that list; values are never silently dropped. On the PLATFORM patch this list IS the ceiling. Empty denies all models at either layer.

SetCrowdyStudioAgentAppPolicyInput.allowedToolNames ● [String!] list scalar

Replacement exact logical tool-name allowlist (max 256). On an APP patch every name must already be in the platform allowlist or the whole write is refused with AGENT_POLICY_INVALID naming that list, and what you do send is stored exactly as sent; OMIT the field to express no narrowing, which inherits the platform list live on every read. Sending an empty array on an APP patch clears a narrowing and is therefore also "no narrowing", not "deny all". On the PLATFORM patch this list is the ceiling and empty denies every tool.

SetCrowdyStudioAgentAppPolicyInput.allowedModes ● [CrowdyStudioAgentMode!] list enum

Replacement mode allowlist. On an APP patch every mode must already be in the platform allowlist or the whole write is refused with AGENT_POLICY_INVALID naming that list. Empty denies every mode at either layer; there is no inherit-on-empty for modes.

SetCrowdyStudioAgentAppPolicyInput.allowedRiskClasses ● [CrowdyStudioAgentRiskClass!] list enum

Replacement risk-class allowlist. On an APP patch every class must already be in the platform allowlist or the whole write is refused with AGENT_POLICY_INVALID naming that list, and what you do send is stored exactly as sent; OMIT the field to express no narrowing, which inherits the platform list live on every read. On the PLATFORM patch this list is the ceiling and empty denies every class.

SetCrowdyStudioAgentAppPolicyInput.turnLimits ● CrowdyStudioAgentTurnLimitsInput input

Optional per-turn limit patch.

SetCrowdyStudioAgentAppPolicyInput.sessionLimits ● CrowdyStudioAgentSessionLimitsInput input

Optional per-session limit patch.

SetCrowdyStudioAgentAppPolicyInput.playerDayLimits ● CrowdyStudioAgentPlayerDayLimitsInput input

Optional per-player/day and concurrency limit patch.

SetCrowdyStudioAgentAppPolicyInput.retention ● CrowdyStudioAgentRetentionPolicyInput input

Optional retention patch.

SetCrowdyStudioAgentAppPolicyInput.privacy ● CrowdyStudioAgentPrivacyPolicyInput input

Optional private-source sharing patch; first-use consent remains locked on.

SetCrowdyStudioAgentAppPolicyInput.appId ● BigInt! non-null scalar

App whose policy is changed.

SetCrowdyStudioAgentAppPolicyInput.expectedRevision ● BigInt scalar

Optional optimistic revision. Use 0 when creating; a mismatch fails AGENT_POLICY_REVISION_CONFLICT.

SetCrowdyStudioAgentAppPolicyInput.idempotencyKey ● String! non-null scalar

Required retry key (1-128 characters). Same key/arguments replay; different arguments fail IDEMPOTENCY_CONFLICT.

Member Of

setCrowdyStudioAgentPolicy mutation