AssociateApi

valid {
    input.Body.apiId == STRING
    input.ReqMap.domainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateMergedGraphqlApi

enum_MergeType := [ "MANUAL_MERGE", "AUTO_MERGE" ]

valid {
    input.Body.mergedApiIdentifier == STRING
    input.Body.description == STRING
    input.Body.sourceApiAssociationConfig.mergeType == enum_MergeType[_]
    input.ReqMap.sourceApiIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

AssociateSourceGraphqlApi

enum_MergeType := [ "MANUAL_MERGE", "AUTO_MERGE" ]

valid {
    input.Body.sourceApiIdentifier == STRING
    input.Body.description == STRING
    input.Body.sourceApiAssociationConfig.mergeType == enum_MergeType[_]
    input.ReqMap.mergedApiIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateApiCache

enum_ApiCacheType := [ "T2_SMALL", "T2_MEDIUM", "R4_LARGE", "R4_XLARGE", "R4_2XLARGE", "R4_4XLARGE", "R4_8XLARGE", "SMALL", "MEDIUM", "LARGE", "XLARGE", "LARGE_2X", "LARGE_4X", "LARGE_8X", "LARGE_12X" ]
enum_ApiCachingBehavior := [ "FULL_REQUEST_CACHING", "PER_RESOLVER_CACHING" ]
enum_CacheHealthMetricsConfig := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.ttl == LONG
    input.Body.transitEncryptionEnabled == BOOLEAN
    input.Body.atRestEncryptionEnabled == BOOLEAN
    input.Body.apiCachingBehavior == enum_ApiCachingBehavior[_]
    input.Body.type == enum_ApiCacheType[_]
    input.Body.healthMetricsConfig == enum_CacheHealthMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateApiKey

valid {
    input.Body.description == STRING
    input.Body.expires == LONG
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDataSource

enum_AuthorizationType := [ "AWS_IAM" ]
enum_DataSourceLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_DataSourceType := [ "AWS_LAMBDA", "AMAZON_DYNAMODB", "AMAZON_ELASTICSEARCH", "NONE", "HTTP", "RELATIONAL_DATABASE", "AMAZON_OPENSEARCH_SERVICE", "AMAZON_EVENTBRIDGE" ]
enum_RelationalDatabaseSourceType := [ "RDS_HTTP_ENDPOINT" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.type == enum_DataSourceType[_]
    input.Body.serviceRoleArn == STRING
    input.Body.dynamodbConfig.tableName == STRING
    input.Body.dynamodbConfig.awsRegion == STRING
    input.Body.dynamodbConfig.useCallerCredentials == BOOLEAN
    input.Body.dynamodbConfig.deltaSyncConfig.baseTableTTL == LONG
    input.Body.dynamodbConfig.deltaSyncConfig.deltaSyncTableName == STRING
    input.Body.dynamodbConfig.deltaSyncConfig.deltaSyncTableTTL == LONG
    input.Body.dynamodbConfig.versioned == BOOLEAN
    input.Body.lambdaConfig.lambdaFunctionArn == STRING
    input.Body.elasticsearchConfig.endpoint == STRING
    input.Body.elasticsearchConfig.awsRegion == STRING
    input.Body.openSearchServiceConfig.endpoint == STRING
    input.Body.openSearchServiceConfig.awsRegion == STRING
    input.Body.httpConfig.endpoint == STRING
    input.Body.httpConfig.authorizationConfig.authorizationType == enum_AuthorizationType[_]
    input.Body.httpConfig.authorizationConfig.awsIamConfig.signingRegion == STRING
    input.Body.httpConfig.authorizationConfig.awsIamConfig.signingServiceName == STRING
    input.Body.relationalDatabaseConfig.relationalDatabaseSourceType == enum_RelationalDatabaseSourceType[_]
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.awsRegion == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.dbClusterIdentifier == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.databaseName == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.schema == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.awsSecretStoreArn == STRING
    input.Body.eventBridgeConfig.eventBusArn == STRING
    input.Body.metricsConfig == enum_DataSourceLevelMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateDomainName

valid {
    input.Body.domainName == STRING
    input.Body.certificateArn == STRING
    input.Body.description == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateFunction

enum_ConflictDetectionType := [ "VERSION", "NONE" ]
enum_ConflictHandlerType := [ "OPTIMISTIC_CONCURRENCY", "LAMBDA", "AUTOMERGE", "NONE" ]
enum_RuntimeName := [ "APPSYNC_JS" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.dataSourceName == STRING
    input.Body.requestMappingTemplate == STRING
    input.Body.responseMappingTemplate == STRING
    input.Body.functionVersion == STRING
    input.Body.syncConfig.conflictHandler == enum_ConflictHandlerType[_]
    input.Body.syncConfig.conflictDetection == enum_ConflictDetectionType[_]
    input.Body.syncConfig.lambdaConflictHandlerConfig.lambdaConflictHandlerArn == STRING
    input.Body.maxBatchSize == INTEGER
    input.Body.runtime.name == enum_RuntimeName[_]
    input.Body.runtime.runtimeVersion == STRING
    input.Body.code == STRING
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateGraphqlApi

enum_AuthenticationType := [ "API_KEY", "AWS_IAM", "AMAZON_COGNITO_USER_POOLS", "OPENID_CONNECT", "AWS_LAMBDA" ]
enum_DataSourceLevelMetricsBehavior := [ "FULL_REQUEST_DATA_SOURCE_METRICS", "PER_DATA_SOURCE_METRICS" ]
enum_DefaultAction := [ "ALLOW", "DENY" ]
enum_FieldLogLevel := [ "NONE", "ERROR", "ALL" ]
enum_GraphQLApiIntrospectionConfig := [ "ENABLED", "DISABLED" ]
enum_GraphQLApiType := [ "GRAPHQL", "MERGED" ]
enum_GraphQLApiVisibility := [ "GLOBAL", "PRIVATE" ]
enum_OperationLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_ResolverLevelMetricsBehavior := [ "FULL_REQUEST_RESOLVER_METRICS", "PER_RESOLVER_METRICS" ]

valid {
    input.Body.name == STRING
    input.Body.logConfig.fieldLogLevel == enum_FieldLogLevel[_]
    input.Body.logConfig.cloudWatchLogsRoleArn == STRING
    input.Body.logConfig.excludeVerboseContent == BOOLEAN
    input.Body.authenticationType == enum_AuthenticationType[_]
    input.Body.userPoolConfig.userPoolId == STRING
    input.Body.userPoolConfig.awsRegion == STRING
    input.Body.userPoolConfig.defaultAction == enum_DefaultAction[_]
    input.Body.userPoolConfig.appIdClientRegex == STRING
    input.Body.openIDConnectConfig.issuer == STRING
    input.Body.openIDConnectConfig.clientId == STRING
    input.Body.openIDConnectConfig.iatTTL == LONG
    input.Body.openIDConnectConfig.authTTL == LONG
    input.Body.tags.STRING == STRING
    input.Body.additionalAuthenticationProviders[_].authenticationType == enum_AuthenticationType[_]
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.issuer == STRING
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.clientId == STRING
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.iatTTL == LONG
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.authTTL == LONG
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.userPoolId == STRING
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.awsRegion == STRING
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.appIdClientRegex == STRING
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.authorizerResultTtlInSeconds == INTEGER
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.authorizerUri == STRING
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.identityValidationExpression == STRING
    input.Body.xrayEnabled == BOOLEAN
    input.Body.lambdaAuthorizerConfig.authorizerResultTtlInSeconds == INTEGER
    input.Body.lambdaAuthorizerConfig.authorizerUri == STRING
    input.Body.lambdaAuthorizerConfig.identityValidationExpression == STRING
    input.Body.visibility == enum_GraphQLApiVisibility[_]
    input.Body.apiType == enum_GraphQLApiType[_]
    input.Body.mergedApiExecutionRoleArn == STRING
    input.Body.ownerContact == STRING
    input.Body.introspectionConfig == enum_GraphQLApiIntrospectionConfig[_]
    input.Body.queryDepthLimit == INTEGER
    input.Body.resolverCountLimit == INTEGER
    input.Body.enhancedMetricsConfig.resolverLevelMetricsBehavior == enum_ResolverLevelMetricsBehavior[_]
    input.Body.enhancedMetricsConfig.dataSourceLevelMetricsBehavior == enum_DataSourceLevelMetricsBehavior[_]
    input.Body.enhancedMetricsConfig.operationLevelMetricsConfig == enum_OperationLevelMetricsConfig[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateResolver

enum_ConflictDetectionType := [ "VERSION", "NONE" ]
enum_ConflictHandlerType := [ "OPTIMISTIC_CONCURRENCY", "LAMBDA", "AUTOMERGE", "NONE" ]
enum_ResolverKind := [ "UNIT", "PIPELINE" ]
enum_ResolverLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_RuntimeName := [ "APPSYNC_JS" ]

valid {
    input.Body.fieldName == STRING
    input.Body.dataSourceName == STRING
    input.Body.requestMappingTemplate == STRING
    input.Body.responseMappingTemplate == STRING
    input.Body.kind == enum_ResolverKind[_]
    input.Body.pipelineConfig.functions[_] == STRING
    input.Body.syncConfig.conflictHandler == enum_ConflictHandlerType[_]
    input.Body.syncConfig.conflictDetection == enum_ConflictDetectionType[_]
    input.Body.syncConfig.lambdaConflictHandlerConfig.lambdaConflictHandlerArn == STRING
    input.Body.cachingConfig.ttl == LONG
    input.Body.cachingConfig.cachingKeys[_] == STRING
    input.Body.maxBatchSize == INTEGER
    input.Body.runtime.name == enum_RuntimeName[_]
    input.Body.runtime.runtimeVersion == STRING
    input.Body.code == STRING
    input.Body.metricsConfig == enum_ResolverLevelMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateType

enum_TypeDefinitionFormat := [ "SDL", "JSON" ]

valid {
    input.Body.definition == STRING
    input.Body.format == enum_TypeDefinitionFormat[_]
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteApiCache

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

DeleteApiKey

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

DeleteDataSource

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

DeleteDomainName

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

DeleteFunction

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

DeleteGraphqlApi

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

DeleteResolver

valid {
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.ReqMap.fieldName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteType

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

DisassociateApi

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

DisassociateMergedGraphqlApi

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

DisassociateSourceGraphqlApi

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

EvaluateCode

enum_RuntimeName := [ "APPSYNC_JS" ]

valid {
    input.Body.runtime.name == enum_RuntimeName[_]
    input.Body.runtime.runtimeVersion == STRING
    input.Body.code == STRING
    input.Body.context == STRING
    input.Body.function == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

EvaluateMappingTemplate

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

FlushApiCache

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

GetApiAssociation

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

GetApiCache

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

GetDataSource

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

GetDataSourceIntrospection

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

GetDomainName

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

GetFunction

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

GetGraphqlApi

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

GetGraphqlApiEnvironmentVariables

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

GetIntrospectionSchema

enum_OutputType := [ "SDL", "JSON" ]

valid {
    input.ReqMap.apiId == STRING
    input.Qs.format == enum_OutputType[_]
    input.Qs.includeDirectives == BOOLEAN
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetResolver

valid {
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.ReqMap.fieldName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetSchemaCreationStatus

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

GetSourceApiAssociation

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

GetType

enum_TypeDefinitionFormat := [ "SDL", "JSON" ]

valid {
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.Qs.format == enum_TypeDefinitionFormat[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListApiKeys

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

ListDataSources

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

ListDomainNames

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

ListFunctions

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

ListGraphqlApis

enum_GraphQLApiType := [ "GRAPHQL", "MERGED" ]
enum_Ownership := [ "CURRENT_ACCOUNT", "OTHER_ACCOUNTS" ]

valid {
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.apiType == enum_GraphQLApiType[_]
    input.Qs.owner == enum_Ownership[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListResolvers

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

ListResolversByFunction

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

ListSourceApiAssociations

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

ListTagsForResource

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

ListTypes

enum_TypeDefinitionFormat := [ "SDL", "JSON" ]

valid {
    input.ReqMap.apiId == STRING
    input.Qs.format == enum_TypeDefinitionFormat[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTypesByAssociation

enum_TypeDefinitionFormat := [ "SDL", "JSON" ]

valid {
    input.ReqMap.mergedApiIdentifier == STRING
    input.ReqMap.associationId == STRING
    input.Qs.format == enum_TypeDefinitionFormat[_]
    input.Qs.nextToken == STRING
    input.Qs.maxResults == INTEGER
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutGraphqlApiEnvironmentVariables

valid {
    input.Body.environmentVariables.STRING == STRING
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartDataSourceIntrospection

valid {
    input.Body.rdsDataApiConfig.resourceArn == STRING
    input.Body.rdsDataApiConfig.secretArn == STRING
    input.Body.rdsDataApiConfig.databaseName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartSchemaCreation

valid {
    input.Body.definition == BLOB
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

StartSchemaMerge

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

TagResource

valid {
    input.Body.tags.STRING == STRING
    input.ReqMap.resourceArn == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UntagResource

valid {
    input.ReqMap.resourceArn == STRING
    input.Qs.tagKeys[_] == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApiCache

enum_ApiCacheType := [ "T2_SMALL", "T2_MEDIUM", "R4_LARGE", "R4_XLARGE", "R4_2XLARGE", "R4_4XLARGE", "R4_8XLARGE", "SMALL", "MEDIUM", "LARGE", "XLARGE", "LARGE_2X", "LARGE_4X", "LARGE_8X", "LARGE_12X" ]
enum_ApiCachingBehavior := [ "FULL_REQUEST_CACHING", "PER_RESOLVER_CACHING" ]
enum_CacheHealthMetricsConfig := [ "ENABLED", "DISABLED" ]

valid {
    input.Body.ttl == LONG
    input.Body.apiCachingBehavior == enum_ApiCachingBehavior[_]
    input.Body.type == enum_ApiCacheType[_]
    input.Body.healthMetricsConfig == enum_CacheHealthMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateApiKey

valid {
    input.Body.description == STRING
    input.Body.expires == LONG
    input.ReqMap.apiId == STRING
    input.ReqMap.id == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDataSource

enum_AuthorizationType := [ "AWS_IAM" ]
enum_DataSourceLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_DataSourceType := [ "AWS_LAMBDA", "AMAZON_DYNAMODB", "AMAZON_ELASTICSEARCH", "NONE", "HTTP", "RELATIONAL_DATABASE", "AMAZON_OPENSEARCH_SERVICE", "AMAZON_EVENTBRIDGE" ]
enum_RelationalDatabaseSourceType := [ "RDS_HTTP_ENDPOINT" ]

valid {
    input.Body.description == STRING
    input.Body.type == enum_DataSourceType[_]
    input.Body.serviceRoleArn == STRING
    input.Body.dynamodbConfig.tableName == STRING
    input.Body.dynamodbConfig.awsRegion == STRING
    input.Body.dynamodbConfig.useCallerCredentials == BOOLEAN
    input.Body.dynamodbConfig.deltaSyncConfig.baseTableTTL == LONG
    input.Body.dynamodbConfig.deltaSyncConfig.deltaSyncTableName == STRING
    input.Body.dynamodbConfig.deltaSyncConfig.deltaSyncTableTTL == LONG
    input.Body.dynamodbConfig.versioned == BOOLEAN
    input.Body.lambdaConfig.lambdaFunctionArn == STRING
    input.Body.elasticsearchConfig.endpoint == STRING
    input.Body.elasticsearchConfig.awsRegion == STRING
    input.Body.openSearchServiceConfig.endpoint == STRING
    input.Body.openSearchServiceConfig.awsRegion == STRING
    input.Body.httpConfig.endpoint == STRING
    input.Body.httpConfig.authorizationConfig.authorizationType == enum_AuthorizationType[_]
    input.Body.httpConfig.authorizationConfig.awsIamConfig.signingRegion == STRING
    input.Body.httpConfig.authorizationConfig.awsIamConfig.signingServiceName == STRING
    input.Body.relationalDatabaseConfig.relationalDatabaseSourceType == enum_RelationalDatabaseSourceType[_]
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.awsRegion == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.dbClusterIdentifier == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.databaseName == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.schema == STRING
    input.Body.relationalDatabaseConfig.rdsHttpEndpointConfig.awsSecretStoreArn == STRING
    input.Body.eventBridgeConfig.eventBusArn == STRING
    input.Body.metricsConfig == enum_DataSourceLevelMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateDomainName

valid {
    input.Body.description == STRING
    input.ReqMap.domainName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateFunction

enum_ConflictDetectionType := [ "VERSION", "NONE" ]
enum_ConflictHandlerType := [ "OPTIMISTIC_CONCURRENCY", "LAMBDA", "AUTOMERGE", "NONE" ]
enum_RuntimeName := [ "APPSYNC_JS" ]

valid {
    input.Body.name == STRING
    input.Body.description == STRING
    input.Body.dataSourceName == STRING
    input.Body.requestMappingTemplate == STRING
    input.Body.responseMappingTemplate == STRING
    input.Body.functionVersion == STRING
    input.Body.syncConfig.conflictHandler == enum_ConflictHandlerType[_]
    input.Body.syncConfig.conflictDetection == enum_ConflictDetectionType[_]
    input.Body.syncConfig.lambdaConflictHandlerConfig.lambdaConflictHandlerArn == STRING
    input.Body.maxBatchSize == INTEGER
    input.Body.runtime.name == enum_RuntimeName[_]
    input.Body.runtime.runtimeVersion == STRING
    input.Body.code == STRING
    input.ReqMap.apiId == STRING
    input.ReqMap.functionId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateGraphqlApi

enum_AuthenticationType := [ "API_KEY", "AWS_IAM", "AMAZON_COGNITO_USER_POOLS", "OPENID_CONNECT", "AWS_LAMBDA" ]
enum_DataSourceLevelMetricsBehavior := [ "FULL_REQUEST_DATA_SOURCE_METRICS", "PER_DATA_SOURCE_METRICS" ]
enum_DefaultAction := [ "ALLOW", "DENY" ]
enum_FieldLogLevel := [ "NONE", "ERROR", "ALL" ]
enum_GraphQLApiIntrospectionConfig := [ "ENABLED", "DISABLED" ]
enum_OperationLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_ResolverLevelMetricsBehavior := [ "FULL_REQUEST_RESOLVER_METRICS", "PER_RESOLVER_METRICS" ]

valid {
    input.Body.name == STRING
    input.Body.logConfig.fieldLogLevel == enum_FieldLogLevel[_]
    input.Body.logConfig.cloudWatchLogsRoleArn == STRING
    input.Body.logConfig.excludeVerboseContent == BOOLEAN
    input.Body.authenticationType == enum_AuthenticationType[_]
    input.Body.userPoolConfig.userPoolId == STRING
    input.Body.userPoolConfig.awsRegion == STRING
    input.Body.userPoolConfig.defaultAction == enum_DefaultAction[_]
    input.Body.userPoolConfig.appIdClientRegex == STRING
    input.Body.openIDConnectConfig.issuer == STRING
    input.Body.openIDConnectConfig.clientId == STRING
    input.Body.openIDConnectConfig.iatTTL == LONG
    input.Body.openIDConnectConfig.authTTL == LONG
    input.Body.additionalAuthenticationProviders[_].authenticationType == enum_AuthenticationType[_]
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.issuer == STRING
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.clientId == STRING
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.iatTTL == LONG
    input.Body.additionalAuthenticationProviders[_].openIDConnectConfig.authTTL == LONG
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.userPoolId == STRING
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.awsRegion == STRING
    input.Body.additionalAuthenticationProviders[_].userPoolConfig.appIdClientRegex == STRING
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.authorizerResultTtlInSeconds == INTEGER
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.authorizerUri == STRING
    input.Body.additionalAuthenticationProviders[_].lambdaAuthorizerConfig.identityValidationExpression == STRING
    input.Body.xrayEnabled == BOOLEAN
    input.Body.lambdaAuthorizerConfig.authorizerResultTtlInSeconds == INTEGER
    input.Body.lambdaAuthorizerConfig.authorizerUri == STRING
    input.Body.lambdaAuthorizerConfig.identityValidationExpression == STRING
    input.Body.mergedApiExecutionRoleArn == STRING
    input.Body.ownerContact == STRING
    input.Body.introspectionConfig == enum_GraphQLApiIntrospectionConfig[_]
    input.Body.queryDepthLimit == INTEGER
    input.Body.resolverCountLimit == INTEGER
    input.Body.enhancedMetricsConfig.resolverLevelMetricsBehavior == enum_ResolverLevelMetricsBehavior[_]
    input.Body.enhancedMetricsConfig.dataSourceLevelMetricsBehavior == enum_DataSourceLevelMetricsBehavior[_]
    input.Body.enhancedMetricsConfig.operationLevelMetricsConfig == enum_OperationLevelMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateResolver

enum_ConflictDetectionType := [ "VERSION", "NONE" ]
enum_ConflictHandlerType := [ "OPTIMISTIC_CONCURRENCY", "LAMBDA", "AUTOMERGE", "NONE" ]
enum_ResolverKind := [ "UNIT", "PIPELINE" ]
enum_ResolverLevelMetricsConfig := [ "ENABLED", "DISABLED" ]
enum_RuntimeName := [ "APPSYNC_JS" ]

valid {
    input.Body.dataSourceName == STRING
    input.Body.requestMappingTemplate == STRING
    input.Body.responseMappingTemplate == STRING
    input.Body.kind == enum_ResolverKind[_]
    input.Body.pipelineConfig.functions[_] == STRING
    input.Body.syncConfig.conflictHandler == enum_ConflictHandlerType[_]
    input.Body.syncConfig.conflictDetection == enum_ConflictDetectionType[_]
    input.Body.syncConfig.lambdaConflictHandlerConfig.lambdaConflictHandlerArn == STRING
    input.Body.cachingConfig.ttl == LONG
    input.Body.cachingConfig.cachingKeys[_] == STRING
    input.Body.maxBatchSize == INTEGER
    input.Body.runtime.name == enum_RuntimeName[_]
    input.Body.runtime.runtimeVersion == STRING
    input.Body.code == STRING
    input.Body.metricsConfig == enum_ResolverLevelMetricsConfig[_]
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.ReqMap.fieldName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateSourceApiAssociation

enum_MergeType := [ "MANUAL_MERGE", "AUTO_MERGE" ]

valid {
    input.Body.description == STRING
    input.Body.sourceApiAssociationConfig.mergeType == enum_MergeType[_]
    input.ReqMap.associationId == STRING
    input.ReqMap.mergedApiIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateType

enum_TypeDefinitionFormat := [ "SDL", "JSON" ]

valid {
    input.Body.definition == STRING
    input.Body.format == enum_TypeDefinitionFormat[_]
    input.ReqMap.apiId == STRING
    input.ReqMap.typeName == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}