BEDROCK-AGENTCORE-CONTROL

CreateAgentRuntime

enum_NetworkMode := [ "PUBLIC" ]
enum_ServerProtocol := [ "MCP", "HTTP" ]

valid {
    input.Body.agentRuntimeName == STRING
    input.Body.description == STRING
    input.Body.agentRuntimeArtifact.containerConfiguration.containerUri == STRING
    input.Body.roleArn == STRING
    input.Body.networkConfiguration.networkMode == enum_NetworkMode[_]
    input.Body.protocolConfiguration.serverProtocol == enum_ServerProtocol[_]
    input.Body.clientToken == STRING
    input.Body.environmentVariables.STRING == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.discoveryUrl == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedAudience[_] == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedClients[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAgentRuntimeEndpoint

valid {
    input.Body.name == STRING
    input.Body.agentRuntimeVersion == STRING
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.ReqMap.agentRuntimeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateApiKeyCredentialProvider

valid {
    input.Body.name == STRING
    input.Body.apiKey == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateBrowser

enum_BrowserNetworkMode := [ "PUBLIC" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.executionRoleArn == STRING
    input.Body.networkConfiguration.networkMode == enum_BrowserNetworkMode[_]
    input.Body.recording.enabled == BOOLEAN
    input.Body.recording.s3Location.bucket == STRING
    input.Body.recording.s3Location.prefix == STRING
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateCodeInterpreter

enum_CodeInterpreterNetworkMode := [ "PUBLIC", "SANDBOX" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.executionRoleArn == STRING
    input.Body.networkConfiguration.networkMode == enum_CodeInterpreterNetworkMode[_]
    input.Body.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGateway

enum_AuthorizerType := [ "CUSTOM_JWT" ]
enum_ExceptionLevel := [ "DEBUG" ]
enum_GatewayProtocolType := [ "MCP" ]
enum_SearchType := [ "SEMANTIC" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.Body.roleArn == STRING
    input.Body.protocolType == enum_GatewayProtocolType[_]
    input.Body.protocolConfiguration.mcp.supportedVersions[_] == STRING
    input.Body.protocolConfiguration.mcp.instructions == STRING
    input.Body.protocolConfiguration.mcp.searchType == enum_SearchType[_]
    input.Body.authorizerType == enum_AuthorizerType[_]
    input.Body.authorizerConfiguration.customJWTAuthorizer.discoveryUrl == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedAudience[_] == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedClients[_] == STRING
    input.Body.kmsKeyArn == STRING
    input.Body.exceptionLevel == enum_ExceptionLevel[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGatewayTarget

enum_ApiKeyCredentialLocation := [ "HEADER", "QUERY_PARAMETER" ]
enum_CredentialProviderType := [ "GATEWAY_IAM_ROLE", "OAUTH", "API_KEY" ]
enum_SchemaType := [ "string", "number", "object", "array", "boolean", "integer" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.s3.uri == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.inlinePayload == STRING
    input.Body.targetConfiguration.mcp.smithyModel.s3.uri == STRING
    input.Body.targetConfiguration.mcp.smithyModel.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.smithyModel.inlinePayload == STRING
    input.Body.targetConfiguration.mcp.lambda.lambdaArn == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.s3.uri == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].name == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].description == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.type == enum_SchemaType[_]
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.properties.STRING == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.required[_] == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.items == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.description == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.type == enum_SchemaType[_]
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.properties.STRING == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.required[_] == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.items == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.description == STRING
    input.Body.credentialProviderConfigurations[_].credentialProviderType == enum_CredentialProviderType[_]
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.providerArn == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.scopes[_] == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.customParameters.STRING == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.providerArn == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialParameterName == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialPrefix == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialLocation == enum_ApiKeyCredentialLocation[_]
    input.ReqMap.gatewayIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateMemory

valid {
    input.Body.clientToken == STRING
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.encryptionKeyArn == STRING
    input.Body.memoryExecutionRoleArn == STRING
    input.Body.eventExpiryDuration == INTEGER
    input.Body.memoryStrategies[_].semanticMemoryStrategy.name == STRING
    input.Body.memoryStrategies[_].semanticMemoryStrategy.description == STRING
    input.Body.memoryStrategies[_].semanticMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies[_].summaryMemoryStrategy.name == STRING
    input.Body.memoryStrategies[_].summaryMemoryStrategy.description == STRING
    input.Body.memoryStrategies[_].summaryMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies[_].userPreferenceMemoryStrategy.name == STRING
    input.Body.memoryStrategies[_].userPreferenceMemoryStrategy.description == STRING
    input.Body.memoryStrategies[_].userPreferenceMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.name == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.description == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.extraction.appendToPrompt == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.extraction.modelId == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.consolidation.modelId == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.summaryOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.summaryOverride.consolidation.modelId == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.extraction.appendToPrompt == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.extraction.modelId == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.consolidation.modelId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateOauth2CredentialProvider

enum_CredentialProviderVendorType := [ "GoogleOauth2", "GithubOauth2", "SlackOauth2", "SalesforceOauth2", "MicrosoftOauth2", "CustomOauth2" ]

valid {
    input.Body.name == STRING
    input.Body.credentialProviderVendor == enum_CredentialProviderVendorType[_]
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.discoveryUrl == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.issuer == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.authorizationEndpoint == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.tokenEndpoint == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.responseTypes[_] == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.googleOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.googleOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.githubOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.githubOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.slackOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.slackOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.salesforceOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.salesforceOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.microsoftOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.microsoftOauth2ProviderConfig.clientSecret == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateWorkloadIdentity

valid {
    input.Body.name == STRING
    input.Body.allowedResourceOauth2ReturnUrls[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAgentRuntime

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAgentRuntimeEndpoint

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.ReqMap.endpointName == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApiKeyCredentialProvider

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteBrowser

valid {
    input.ReqMap.browserId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteCodeInterpreter

valid {
    input.ReqMap.codeInterpreterId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGateway

valid {
    input.ReqMap.gatewayIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteGatewayTarget

valid {
    input.ReqMap.gatewayIdentifier == STRING
    input.ReqMap.targetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteMemory

valid {
    input.ReqMap.memoryId == STRING
    input.Qs.clientToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteOauth2CredentialProvider

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteWorkloadIdentity

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAgentRuntime

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.Qs.version == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAgentRuntimeEndpoint

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.ReqMap.endpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetApiKeyCredentialProvider

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetBrowser

valid {
    input.ReqMap.browserId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetCodeInterpreter

valid {
    input.ReqMap.codeInterpreterId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGateway

valid {
    input.ReqMap.gatewayIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetGatewayTarget

valid {
    input.ReqMap.gatewayIdentifier == STRING
    input.ReqMap.targetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetMemory

valid {
    input.ReqMap.memoryId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetOauth2CredentialProvider

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetTokenVault

valid {
    input.Body.tokenVaultId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetWorkloadIdentity

valid {
    input.Body.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAgentRuntimeEndpoints

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAgentRuntimeVersions

valid {
    input.ReqMap.agentRuntimeId == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListAgentRuntimes

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListApiKeyCredentialProviders

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListBrowsers

enum_ResourceType := [ "SYSTEM", "CUSTOM" ]

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.type == enum_ResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListCodeInterpreters

enum_ResourceType := [ "SYSTEM", "CUSTOM" ]

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.type == enum_ResourceType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListGatewayTargets

valid {
    input.ReqMap.gatewayIdentifier == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListGateways

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListMemories

valid {
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListOauth2CredentialProviders

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListWorkloadIdentities

valid {
    input.Body.nextToken == STRING
    input.Body.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

SetTokenVaultCMK

enum_KeyType := [ "CustomerManagedKey", "ServiceManagedKey" ]

valid {
    input.Body.tokenVaultId == STRING
    input.Body.kmsConfiguration.keyType == enum_KeyType[_]
    input.Body.kmsConfiguration.kmsKeyArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAgentRuntime

enum_NetworkMode := [ "PUBLIC" ]
enum_ServerProtocol := [ "MCP", "HTTP" ]

valid {
    input.Body.description == STRING
    input.Body.agentRuntimeArtifact.containerConfiguration.containerUri == STRING
    input.Body.roleArn == STRING
    input.Body.networkConfiguration.networkMode == enum_NetworkMode[_]
    input.Body.protocolConfiguration.serverProtocol == enum_ServerProtocol[_]
    input.Body.clientToken == STRING
    input.Body.environmentVariables.STRING == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.discoveryUrl == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedAudience[_] == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedClients[_] == STRING
    input.ReqMap.agentRuntimeId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateAgentRuntimeEndpoint

valid {
    input.Body.agentRuntimeVersion == STRING
    input.Body.description == STRING
    input.Body.clientToken == STRING
    input.ReqMap.agentRuntimeId == STRING
    input.ReqMap.endpointName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApiKeyCredentialProvider

valid {
    input.Body.name == STRING
    input.Body.apiKey == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGateway

enum_AuthorizerType := [ "CUSTOM_JWT" ]
enum_ExceptionLevel := [ "DEBUG" ]
enum_GatewayProtocolType := [ "MCP" ]
enum_SearchType := [ "SEMANTIC" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.roleArn == STRING
    input.Body.protocolType == enum_GatewayProtocolType[_]
    input.Body.protocolConfiguration.mcp.supportedVersions[_] == STRING
    input.Body.protocolConfiguration.mcp.instructions == STRING
    input.Body.protocolConfiguration.mcp.searchType == enum_SearchType[_]
    input.Body.authorizerType == enum_AuthorizerType[_]
    input.Body.authorizerConfiguration.customJWTAuthorizer.discoveryUrl == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedAudience[_] == STRING
    input.Body.authorizerConfiguration.customJWTAuthorizer.allowedClients[_] == STRING
    input.Body.kmsKeyArn == STRING
    input.Body.exceptionLevel == enum_ExceptionLevel[_]
    input.ReqMap.gatewayIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGatewayTarget

enum_ApiKeyCredentialLocation := [ "HEADER", "QUERY_PARAMETER" ]
enum_CredentialProviderType := [ "GATEWAY_IAM_ROLE", "OAUTH", "API_KEY" ]
enum_SchemaType := [ "string", "number", "object", "array", "boolean", "integer" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.s3.uri == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.openApiSchema.inlinePayload == STRING
    input.Body.targetConfiguration.mcp.smithyModel.s3.uri == STRING
    input.Body.targetConfiguration.mcp.smithyModel.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.smithyModel.inlinePayload == STRING
    input.Body.targetConfiguration.mcp.lambda.lambdaArn == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.s3.uri == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.s3.bucketOwnerAccountId == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].name == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].description == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.type == enum_SchemaType[_]
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.properties.STRING == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.required[_] == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.items == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].inputSchema.description == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.type == enum_SchemaType[_]
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.properties.STRING == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.required[_] == STRING
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.items == NESTED
    input.Body.targetConfiguration.mcp.lambda.toolSchema.inlinePayload[_].outputSchema.description == STRING
    input.Body.credentialProviderConfigurations[_].credentialProviderType == enum_CredentialProviderType[_]
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.providerArn == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.scopes[_] == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.oauthCredentialProvider.customParameters.STRING == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.providerArn == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialParameterName == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialPrefix == STRING
    input.Body.credentialProviderConfigurations[_].credentialProvider.apiKeyCredentialProvider.credentialLocation == enum_ApiKeyCredentialLocation[_]
    input.ReqMap.gatewayIdentifier == STRING
    input.ReqMap.targetId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateMemory

valid {
    input.Body.clientToken == STRING
    input.Body.description == STRING
    input.Body.eventExpiryDuration == INTEGER
    input.Body.memoryExecutionRoleArn == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].semanticMemoryStrategy.name == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].semanticMemoryStrategy.description == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].semanticMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].summaryMemoryStrategy.name == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].summaryMemoryStrategy.description == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].summaryMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].userPreferenceMemoryStrategy.name == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].userPreferenceMemoryStrategy.description == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].userPreferenceMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.name == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.description == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.namespaces[_] == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.extraction.appendToPrompt == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.extraction.modelId == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.semanticOverride.consolidation.modelId == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.summaryOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.summaryOverride.consolidation.modelId == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.extraction.appendToPrompt == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.extraction.modelId == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.consolidation.appendToPrompt == STRING
    input.Body.memoryStrategies.addMemoryStrategies[_].customMemoryStrategy.configuration.userPreferenceOverride.consolidation.modelId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].memoryStrategyId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].description == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].namespaces[_] == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.extraction.customExtractionConfiguration.semanticExtractionOverride.appendToPrompt == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.extraction.customExtractionConfiguration.semanticExtractionOverride.modelId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.extraction.customExtractionConfiguration.userPreferenceExtractionOverride.appendToPrompt == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.extraction.customExtractionConfiguration.userPreferenceExtractionOverride.modelId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.semanticConsolidationOverride.appendToPrompt == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.semanticConsolidationOverride.modelId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.summaryConsolidationOverride.appendToPrompt == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.summaryConsolidationOverride.modelId == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.userPreferenceConsolidationOverride.appendToPrompt == STRING
    input.Body.memoryStrategies.modifyMemoryStrategies[_].configuration.consolidation.customConsolidationConfiguration.userPreferenceConsolidationOverride.modelId == STRING
    input.Body.memoryStrategies.deleteMemoryStrategies[_].memoryStrategyId == STRING
    input.ReqMap.memoryId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateOauth2CredentialProvider

enum_CredentialProviderVendorType := [ "GoogleOauth2", "GithubOauth2", "SlackOauth2", "SalesforceOauth2", "MicrosoftOauth2", "CustomOauth2" ]

valid {
    input.Body.name == STRING
    input.Body.credentialProviderVendor == enum_CredentialProviderVendorType[_]
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.discoveryUrl == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.issuer == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.authorizationEndpoint == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.tokenEndpoint == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.oauthDiscovery.authorizationServerMetadata.responseTypes[_] == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.customOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.googleOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.googleOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.githubOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.githubOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.slackOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.slackOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.salesforceOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.salesforceOauth2ProviderConfig.clientSecret == STRING
    input.Body.oauth2ProviderConfigInput.microsoftOauth2ProviderConfig.clientId == STRING
    input.Body.oauth2ProviderConfigInput.microsoftOauth2ProviderConfig.clientSecret == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateWorkloadIdentity

valid {
    input.Body.name == STRING
    input.Body.allowedResourceOauth2ReturnUrls[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}