VPC-LATTICE

BatchUpdateRule

valid {
    input.Body.rules[_].action.fixedResponse.statusCode == INTEGER
    input.Body.rules[_].action.forward.targetGroups[_].targetGroupIdentifier == STRING
    input.Body.rules[_].action.forward.targetGroups[_].weight == INTEGER
    input.Body.rules[_].match.httpMatch.headerMatches[_].caseSensitive == BOOLEAN
    input.Body.rules[_].match.httpMatch.headerMatches[_].match.contains == STRING
    input.Body.rules[_].match.httpMatch.headerMatches[_].match.exact == STRING
    input.Body.rules[_].match.httpMatch.headerMatches[_].match.prefix == STRING
    input.Body.rules[_].match.httpMatch.headerMatches[_].name == STRING
    input.Body.rules[_].match.httpMatch.method == STRING
    input.Body.rules[_].match.httpMatch.pathMatch.caseSensitive == BOOLEAN
    input.Body.rules[_].match.httpMatch.pathMatch.match.exact == STRING
    input.Body.rules[_].match.httpMatch.pathMatch.match.prefix == STRING
    input.Body.rules[_].priority == INTEGER
    input.Body.rules[_].ruleIdentifier == STRING
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateAccessLogSubscription

valid {
    input.Body.clientToken == STRING
    input.Body.destinationArn == STRING
    input.Body.resourceIdentifier == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateListener

enum_ListenerProtocol := [ "HTTP", "HTTPS" ]

valid {
    input.Body.clientToken == STRING
    input.Body.defaultAction.fixedResponse.statusCode == INTEGER
    input.Body.defaultAction.forward.targetGroups[_].targetGroupIdentifier == STRING
    input.Body.defaultAction.forward.targetGroups[_].weight == INTEGER
    input.Body.name == STRING
    input.Body.port == INTEGER
    input.Body.protocol == enum_ListenerProtocol[_]
    input.Body.tags.STRING == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateRule

valid {
    input.Body.action.fixedResponse.statusCode == INTEGER
    input.Body.action.forward.targetGroups[_].targetGroupIdentifier == STRING
    input.Body.action.forward.targetGroups[_].weight == INTEGER
    input.Body.clientToken == STRING
    input.Body.match.httpMatch.headerMatches[_].caseSensitive == BOOLEAN
    input.Body.match.httpMatch.headerMatches[_].match.contains == STRING
    input.Body.match.httpMatch.headerMatches[_].match.exact == STRING
    input.Body.match.httpMatch.headerMatches[_].match.prefix == STRING
    input.Body.match.httpMatch.headerMatches[_].name == STRING
    input.Body.match.httpMatch.method == STRING
    input.Body.match.httpMatch.pathMatch.caseSensitive == BOOLEAN
    input.Body.match.httpMatch.pathMatch.match.exact == STRING
    input.Body.match.httpMatch.pathMatch.match.prefix == STRING
    input.Body.name == STRING
    input.Body.priority == INTEGER
    input.Body.tags.STRING == STRING
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateService

enum_AuthType := [ "NONE", "AWS_IAM" ]

valid {
    input.Body.authType == enum_AuthType[_]
    input.Body.certificateArn == STRING
    input.Body.clientToken == STRING
    input.Body.customDomainName == STRING
    input.Body.name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateServiceNetwork

enum_AuthType := [ "NONE", "AWS_IAM" ]

valid {
    input.Body.authType == enum_AuthType[_]
    input.Body.clientToken == STRING
    input.Body.name == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateServiceNetworkServiceAssociation

valid {
    input.Body.clientToken == STRING
    input.Body.serviceIdentifier == STRING
    input.Body.serviceNetworkIdentifier == STRING
    input.Body.tags.STRING == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateServiceNetworkVpcAssociation

valid {
    input.Body.clientToken == STRING
    input.Body.securityGroupIds[_] == STRING
    input.Body.serviceNetworkIdentifier == STRING
    input.Body.tags.STRING == STRING
    input.Body.vpcIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

CreateTargetGroup

enum_HealthCheckProtocolVersion := [ "HTTP1", "HTTP2" ]
enum_IpAddressType := [ "IPV4", "IPV6" ]
enum_LambdaEventStructureVersion := [ "V1", "V2" ]
enum_TargetGroupProtocol := [ "HTTP", "HTTPS" ]
enum_TargetGroupProtocolVersion := [ "HTTP1", "HTTP2", "GRPC" ]
enum_TargetGroupType := [ "IP", "LAMBDA", "INSTANCE", "ALB" ]

valid {
    input.Body.clientToken == STRING
    input.Body.config.healthCheck.enabled == BOOLEAN
    input.Body.config.healthCheck.healthCheckIntervalSeconds == INTEGER
    input.Body.config.healthCheck.healthCheckTimeoutSeconds == INTEGER
    input.Body.config.healthCheck.healthyThresholdCount == INTEGER
    input.Body.config.healthCheck.matcher.httpCode == STRING
    input.Body.config.healthCheck.path == STRING
    input.Body.config.healthCheck.port == INTEGER
    input.Body.config.healthCheck.protocol == enum_TargetGroupProtocol[_]
    input.Body.config.healthCheck.protocolVersion == enum_HealthCheckProtocolVersion[_]
    input.Body.config.healthCheck.unhealthyThresholdCount == INTEGER
    input.Body.config.ipAddressType == enum_IpAddressType[_]
    input.Body.config.lambdaEventStructureVersion == enum_LambdaEventStructureVersion[_]
    input.Body.config.port == INTEGER
    input.Body.config.protocol == enum_TargetGroupProtocol[_]
    input.Body.config.protocolVersion == enum_TargetGroupProtocolVersion[_]
    input.Body.config.vpcIdentifier == STRING
    input.Body.name == STRING
    input.Body.tags.STRING == STRING
    input.Body.type == enum_TargetGroupType[_]
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteAccessLogSubscription

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

DeleteAuthPolicy

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

DeleteListener

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

DeleteResourcePolicy

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

DeleteRule

valid {
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.ruleIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

DeleteService

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

DeleteServiceNetwork

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

DeleteServiceNetworkServiceAssociation

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

DeleteServiceNetworkVpcAssociation

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

DeleteTargetGroup

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

DeregisterTargets

valid {
    input.Body.targets[_].id == STRING
    input.Body.targets[_].port == INTEGER
    input.ReqMap.targetGroupIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetAccessLogSubscription

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

GetAuthPolicy

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

GetListener

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

GetResourcePolicy

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

GetRule

valid {
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.ruleIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

GetService

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

GetServiceNetwork

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

GetServiceNetworkServiceAssociation

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

GetServiceNetworkVpcAssociation

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

GetTargetGroup

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

ListAccessLogSubscriptions

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

ListListeners

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

ListRules

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

ListServiceNetworkServiceAssociations

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

ListServiceNetworkVpcAssociations

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

ListServiceNetworks

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

ListServices

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    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
}

ListTargetGroups

enum_TargetGroupType := [ "IP", "LAMBDA", "INSTANCE", "ALB" ]

valid {
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.Qs.targetGroupType == enum_TargetGroupType[_]
    input.Qs.vpcIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

ListTargets

valid {
    input.Body.targets[_].id == STRING
    input.Body.targets[_].port == INTEGER
    input.ReqMap.targetGroupIdentifier == STRING
    input.Qs.maxResults == INTEGER
    input.Qs.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutAuthPolicy

valid {
    input.Body.policy == STRING
    input.ReqMap.resourceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

PutResourcePolicy

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

RegisterTargets

valid {
    input.Body.targets[_].id == STRING
    input.Body.targets[_].port == INTEGER
    input.ReqMap.targetGroupIdentifier == 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
}

UpdateAccessLogSubscription

valid {
    input.Body.destinationArn == STRING
    input.ReqMap.accessLogSubscriptionIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateListener

valid {
    input.Body.defaultAction.fixedResponse.statusCode == INTEGER
    input.Body.defaultAction.forward.targetGroups[_].targetGroupIdentifier == STRING
    input.Body.defaultAction.forward.targetGroups[_].weight == INTEGER
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateRule

valid {
    input.Body.action.fixedResponse.statusCode == INTEGER
    input.Body.action.forward.targetGroups[_].targetGroupIdentifier == STRING
    input.Body.action.forward.targetGroups[_].weight == INTEGER
    input.Body.match.httpMatch.headerMatches[_].caseSensitive == BOOLEAN
    input.Body.match.httpMatch.headerMatches[_].match.contains == STRING
    input.Body.match.httpMatch.headerMatches[_].match.exact == STRING
    input.Body.match.httpMatch.headerMatches[_].match.prefix == STRING
    input.Body.match.httpMatch.headerMatches[_].name == STRING
    input.Body.match.httpMatch.method == STRING
    input.Body.match.httpMatch.pathMatch.caseSensitive == BOOLEAN
    input.Body.match.httpMatch.pathMatch.match.exact == STRING
    input.Body.match.httpMatch.pathMatch.match.prefix == STRING
    input.Body.priority == INTEGER
    input.ReqMap.listenerIdentifier == STRING
    input.ReqMap.ruleIdentifier == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateService

enum_AuthType := [ "NONE", "AWS_IAM" ]

valid {
    input.Body.authType == enum_AuthType[_]
    input.Body.certificateArn == STRING
    input.ReqMap.serviceIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateServiceNetwork

enum_AuthType := [ "NONE", "AWS_IAM" ]

valid {
    input.Body.authType == enum_AuthType[_]
    input.ReqMap.serviceNetworkIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateServiceNetworkVpcAssociation

valid {
    input.Body.securityGroupIds[_] == STRING
    input.ReqMap.serviceNetworkVpcAssociationIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}

UpdateTargetGroup

enum_HealthCheckProtocolVersion := [ "HTTP1", "HTTP2" ]
enum_TargetGroupProtocol := [ "HTTP", "HTTPS" ]

valid {
    input.Body.healthCheck.enabled == BOOLEAN
    input.Body.healthCheck.healthCheckIntervalSeconds == INTEGER
    input.Body.healthCheck.healthCheckTimeoutSeconds == INTEGER
    input.Body.healthCheck.healthyThresholdCount == INTEGER
    input.Body.healthCheck.matcher.httpCode == STRING
    input.Body.healthCheck.path == STRING
    input.Body.healthCheck.port == INTEGER
    input.Body.healthCheck.protocol == enum_TargetGroupProtocol[_]
    input.Body.healthCheck.protocolVersion == enum_HealthCheckProtocolVersion[_]
    input.Body.healthCheck.unhealthyThresholdCount == INTEGER
    input.ReqMap.targetGroupIdentifier == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}