SERVICECONTROL

servicecontrol.services.allocateQuota

enum_QuotaOperationQuotaMode := [ "UNSPECIFIED", "NORMAL", "BEST_EFFORT", "CHECK_ONLY", "ADJUST_ONLY" ]

valid {
    input.Body.allocateOperation.consumerId == STRING
    input.Body.allocateOperation.labels.STRING == STRING
    input.Body.allocateOperation.methodName == STRING
    input.Body.allocateOperation.operationId == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricName == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].boolValue == BOOLEAN
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.bucketCounts[_] == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.count == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exemplars[_].attachments[_].STRING == ANY
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exemplars[_].timestamp == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exemplars[_].value == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.explicitBuckets.bounds[_] == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exponentialBuckets.growthFactor == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exponentialBuckets.numFiniteBuckets == INTEGER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.exponentialBuckets.scale == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.linearBuckets.numFiniteBuckets == INTEGER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.linearBuckets.offset == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.linearBuckets.width == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.maximum == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.mean == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.minimum == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].distributionValue.sumOfSquaredDeviation == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].doubleValue == NUMBER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].endTime == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].int64Value == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].labels.STRING == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].moneyValue.currencyCode == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].moneyValue.nanos == INTEGER
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].moneyValue.units == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].startTime == STRING
    input.Body.allocateOperation.quotaMetrics[_].metricValues[_].stringValue == STRING
    input.Body.allocateOperation.quotaMode == enum_QuotaOperationQuotaMode[_]
    input.Body.serviceConfigId == STRING
    input.ReqMap.serviceName == STRING
    input.ProviderMetadata.Region == STRING
}

servicecontrol.services.check

valid {
    input.Body.attributes.api.operation == STRING
    input.Body.attributes.api.protocol == STRING
    input.Body.attributes.api.service == STRING
    input.Body.attributes.api.version == STRING
    input.Body.attributes.destination.ip == STRING
    input.Body.attributes.destination.labels.STRING == STRING
    input.Body.attributes.destination.port == STRING
    input.Body.attributes.destination.principal == STRING
    input.Body.attributes.destination.regionCode == STRING
    input.Body.attributes.extensions[_].STRING == ANY
    input.Body.attributes.origin.ip == STRING
    input.Body.attributes.origin.labels.STRING == STRING
    input.Body.attributes.origin.port == STRING
    input.Body.attributes.origin.principal == STRING
    input.Body.attributes.origin.regionCode == STRING
    input.Body.attributes.request.auth.accessLevels[_] == STRING
    input.Body.attributes.request.auth.audiences[_] == STRING
    input.Body.attributes.request.auth.claims.STRING == ANY
    input.Body.attributes.request.auth.presenter == STRING
    input.Body.attributes.request.auth.principal == STRING
    input.Body.attributes.request.headers.STRING == STRING
    input.Body.attributes.request.host == STRING
    input.Body.attributes.request.id == STRING
    input.Body.attributes.request.method == STRING
    input.Body.attributes.request.path == STRING
    input.Body.attributes.request.protocol == STRING
    input.Body.attributes.request.query == STRING
    input.Body.attributes.request.reason == STRING
    input.Body.attributes.request.scheme == STRING
    input.Body.attributes.request.size == STRING
    input.Body.attributes.request.time == STRING
    input.Body.attributes.resource.annotations.STRING == STRING
    input.Body.attributes.resource.createTime == STRING
    input.Body.attributes.resource.deleteTime == STRING
    input.Body.attributes.resource.displayName == STRING
    input.Body.attributes.resource.etag == STRING
    input.Body.attributes.resource.labels.STRING == STRING
    input.Body.attributes.resource.location == STRING
    input.Body.attributes.resource.name == STRING
    input.Body.attributes.resource.service == STRING
    input.Body.attributes.resource.type == STRING
    input.Body.attributes.resource.uid == STRING
    input.Body.attributes.resource.updateTime == STRING
    input.Body.attributes.response.backendLatency == STRING
    input.Body.attributes.response.code == STRING
    input.Body.attributes.response.headers.STRING == STRING
    input.Body.attributes.response.size == STRING
    input.Body.attributes.response.time == STRING
    input.Body.attributes.source.ip == STRING
    input.Body.attributes.source.labels.STRING == STRING
    input.Body.attributes.source.port == STRING
    input.Body.attributes.source.principal == STRING
    input.Body.attributes.source.regionCode == STRING
    input.Body.flags == STRING
    input.Body.resources[_].container == STRING
    input.Body.resources[_].location == STRING
    input.Body.resources[_].name == STRING
    input.Body.resources[_].permission == STRING
    input.Body.resources[_].type == STRING
    input.Body.serviceConfigId == STRING
    input.ReqMap.serviceName == STRING
    input.ProviderMetadata.Region == STRING
}

servicecontrol.services.report

valid {
    input.Body.operations[_].api.operation == STRING
    input.Body.operations[_].api.protocol == STRING
    input.Body.operations[_].api.service == STRING
    input.Body.operations[_].api.version == STRING
    input.Body.operations[_].destination.ip == STRING
    input.Body.operations[_].destination.labels.STRING == STRING
    input.Body.operations[_].destination.port == STRING
    input.Body.operations[_].destination.principal == STRING
    input.Body.operations[_].destination.regionCode == STRING
    input.Body.operations[_].extensions[_].STRING == ANY
    input.Body.operations[_].origin.ip == STRING
    input.Body.operations[_].origin.labels.STRING == STRING
    input.Body.operations[_].origin.port == STRING
    input.Body.operations[_].origin.principal == STRING
    input.Body.operations[_].origin.regionCode == STRING
    input.Body.operations[_].request.auth.accessLevels[_] == STRING
    input.Body.operations[_].request.auth.audiences[_] == STRING
    input.Body.operations[_].request.auth.claims.STRING == ANY
    input.Body.operations[_].request.auth.presenter == STRING
    input.Body.operations[_].request.auth.principal == STRING
    input.Body.operations[_].request.headers.STRING == STRING
    input.Body.operations[_].request.host == STRING
    input.Body.operations[_].request.id == STRING
    input.Body.operations[_].request.method == STRING
    input.Body.operations[_].request.path == STRING
    input.Body.operations[_].request.protocol == STRING
    input.Body.operations[_].request.query == STRING
    input.Body.operations[_].request.reason == STRING
    input.Body.operations[_].request.scheme == STRING
    input.Body.operations[_].request.size == STRING
    input.Body.operations[_].request.time == STRING
    input.Body.operations[_].resource.annotations.STRING == STRING
    input.Body.operations[_].resource.createTime == STRING
    input.Body.operations[_].resource.deleteTime == STRING
    input.Body.operations[_].resource.displayName == STRING
    input.Body.operations[_].resource.etag == STRING
    input.Body.operations[_].resource.labels.STRING == STRING
    input.Body.operations[_].resource.location == STRING
    input.Body.operations[_].resource.name == STRING
    input.Body.operations[_].resource.service == STRING
    input.Body.operations[_].resource.type == STRING
    input.Body.operations[_].resource.uid == STRING
    input.Body.operations[_].resource.updateTime == STRING
    input.Body.operations[_].response.backendLatency == STRING
    input.Body.operations[_].response.code == STRING
    input.Body.operations[_].response.headers.STRING == STRING
    input.Body.operations[_].response.size == STRING
    input.Body.operations[_].response.time == STRING
    input.Body.operations[_].source.ip == STRING
    input.Body.operations[_].source.labels.STRING == STRING
    input.Body.operations[_].source.port == STRING
    input.Body.operations[_].source.principal == STRING
    input.Body.operations[_].source.regionCode == STRING
    input.Body.serviceConfigId == STRING
    input.ReqMap.serviceName == STRING
    input.ProviderMetadata.Region == STRING
}