NETWORKSERVICES

networkservices.projects.locations.edgeCacheKeysets.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheKeysets.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheKeysets.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheOrigins.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheOrigins.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheOrigins.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheServices.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheServices.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.edgeCacheServices.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.create

enum_EndpointMatcherMetadataLabelMatcherMetadataLabelMatchCriteria := [ "METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED", "MATCH_ANY", "MATCH_ALL" ]
enum_EndpointPolicyType := [ "ENDPOINT_POLICY_TYPE_UNSPECIFIED", "SIDECAR_PROXY", "GRPC_SERVER" ]

valid {
    input.Body.authorizationPolicy == STRING
    input.Body.clientTlsPolicy == STRING
    input.Body.description == STRING
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabelMatchCriteria == enum_EndpointMatcherMetadataLabelMatcherMetadataLabelMatchCriteria[_]
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabels[_].labelName == STRING
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabels[_].labelValue == STRING
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.serverTlsPolicy == STRING
    input.Body.trafficPortSelector.ports[_] == STRING
    input.Body.type == enum_EndpointPolicyType[_]
    input.ReqMap.parent == STRING
    input.Qs.endpointPolicyId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.patch

enum_EndpointMatcherMetadataLabelMatcherMetadataLabelMatchCriteria := [ "METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED", "MATCH_ANY", "MATCH_ALL" ]
enum_EndpointPolicyType := [ "ENDPOINT_POLICY_TYPE_UNSPECIFIED", "SIDECAR_PROXY", "GRPC_SERVER" ]

valid {
    input.Body.authorizationPolicy == STRING
    input.Body.clientTlsPolicy == STRING
    input.Body.description == STRING
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabelMatchCriteria == enum_EndpointMatcherMetadataLabelMatcherMetadataLabelMatchCriteria[_]
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabels[_].labelName == STRING
    input.Body.endpointMatcher.metadataLabelMatcher.metadataLabels[_].labelValue == STRING
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.serverTlsPolicy == STRING
    input.Body.trafficPortSelector.ports[_] == STRING
    input.Body.type == enum_EndpointPolicyType[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.endpointPolicies.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.create

enum_GatewayEnvoyHeaders := [ "ENVOY_HEADERS_UNSPECIFIED", "NONE", "DEBUG_HEADERS" ]
enum_GatewayIpVersion := [ "IP_VERSION_UNSPECIFIED", "IPV4", "IPV6" ]
enum_GatewayType := [ "TYPE_UNSPECIFIED", "OPEN_MESH", "SECURE_WEB_GATEWAY" ]

valid {
    input.Body.addresses[_] == STRING
    input.Body.certificateUrls[_] == STRING
    input.Body.description == STRING
    input.Body.envoyHeaders == enum_GatewayEnvoyHeaders[_]
    input.Body.gatewaySecurityPolicy == STRING
    input.Body.ipVersion == enum_GatewayIpVersion[_]
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.network == STRING
    input.Body.ports[_] == INTEGER
    input.Body.scope == STRING
    input.Body.serverTlsPolicy == STRING
    input.Body.subnetwork == STRING
    input.Body.type == enum_GatewayType[_]
    input.ReqMap.parent == STRING
    input.Qs.gatewayId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.patch

enum_GatewayEnvoyHeaders := [ "ENVOY_HEADERS_UNSPECIFIED", "NONE", "DEBUG_HEADERS" ]
enum_GatewayIpVersion := [ "IP_VERSION_UNSPECIFIED", "IPV4", "IPV6" ]
enum_GatewayType := [ "TYPE_UNSPECIFIED", "OPEN_MESH", "SECURE_WEB_GATEWAY" ]

valid {
    input.Body.addresses[_] == STRING
    input.Body.certificateUrls[_] == STRING
    input.Body.description == STRING
    input.Body.envoyHeaders == enum_GatewayEnvoyHeaders[_]
    input.Body.gatewaySecurityPolicy == STRING
    input.Body.ipVersion == enum_GatewayIpVersion[_]
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.network == STRING
    input.Body.ports[_] == INTEGER
    input.Body.scope == STRING
    input.Body.serverTlsPolicy == STRING
    input.Body.subnetwork == STRING
    input.Body.type == enum_GatewayType[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.gateways.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.grpcRoutes.create

enum_GrpcRouteHeaderMatchType := [ "TYPE_UNSPECIFIED", "EXACT", "REGULAR_EXPRESSION" ]
enum_GrpcRouteMethodMatchType := [ "TYPE_UNSPECIFIED", "EXACT", "REGULAR_EXPRESSION" ]

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.hostnames[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.httpStatus == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.percentage == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.delay.fixedDelay == STRING
    input.Body.rules[_].action.faultInjectionPolicy.delay.percentage == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.retryPolicy.numRetries == INTEGER
    input.Body.rules[_].action.retryPolicy.retryConditions[_] == STRING
    input.Body.rules[_].action.statefulSessionAffinity.cookieTtl == STRING
    input.Body.rules[_].action.timeout == STRING
    input.Body.rules[_].matches[_].headers[_].key == STRING
    input.Body.rules[_].matches[_].headers[_].type == enum_GrpcRouteHeaderMatchType[_]
    input.Body.rules[_].matches[_].headers[_].value == STRING
    input.Body.rules[_].matches[_].method.caseSensitive == BOOLEAN
    input.Body.rules[_].matches[_].method.grpcMethod == STRING
    input.Body.rules[_].matches[_].method.grpcService == STRING
    input.Body.rules[_].matches[_].method.type == enum_GrpcRouteMethodMatchType[_]
    input.ReqMap.parent == STRING
    input.Qs.grpcRouteId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.grpcRoutes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.grpcRoutes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.grpcRoutes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.grpcRoutes.patch

enum_GrpcRouteHeaderMatchType := [ "TYPE_UNSPECIFIED", "EXACT", "REGULAR_EXPRESSION" ]
enum_GrpcRouteMethodMatchType := [ "TYPE_UNSPECIFIED", "EXACT", "REGULAR_EXPRESSION" ]

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.hostnames[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.httpStatus == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.percentage == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.delay.fixedDelay == STRING
    input.Body.rules[_].action.faultInjectionPolicy.delay.percentage == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.retryPolicy.numRetries == INTEGER
    input.Body.rules[_].action.retryPolicy.retryConditions[_] == STRING
    input.Body.rules[_].action.statefulSessionAffinity.cookieTtl == STRING
    input.Body.rules[_].action.timeout == STRING
    input.Body.rules[_].matches[_].headers[_].key == STRING
    input.Body.rules[_].matches[_].headers[_].type == enum_GrpcRouteHeaderMatchType[_]
    input.Body.rules[_].matches[_].headers[_].value == STRING
    input.Body.rules[_].matches[_].method.caseSensitive == BOOLEAN
    input.Body.rules[_].matches[_].method.grpcMethod == STRING
    input.Body.rules[_].matches[_].method.grpcService == STRING
    input.Body.rules[_].matches[_].method.type == enum_GrpcRouteMethodMatchType[_]
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.httpRoutes.create

enum_HttpRouteRedirectResponseCode := [ "RESPONSE_CODE_UNSPECIFIED", "MOVED_PERMANENTLY_DEFAULT", "FOUND", "SEE_OTHER", "TEMPORARY_REDIRECT", "PERMANENT_REDIRECT" ]

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.hostnames[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.corsPolicy.allowCredentials == BOOLEAN
    input.Body.rules[_].action.corsPolicy.allowHeaders[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowMethods[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowOriginRegexes[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowOrigins[_] == STRING
    input.Body.rules[_].action.corsPolicy.disabled == BOOLEAN
    input.Body.rules[_].action.corsPolicy.exposeHeaders[_] == STRING
    input.Body.rules[_].action.corsPolicy.maxAge == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.directResponse.bytesBody == STRING
    input.Body.rules[_].action.directResponse.status == INTEGER
    input.Body.rules[_].action.directResponse.stringBody == STRING
    input.Body.rules[_].action.faultInjectionPolicy.abort.httpStatus == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.percentage == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.delay.fixedDelay == STRING
    input.Body.rules[_].action.faultInjectionPolicy.delay.percentage == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.redirect.hostRedirect == STRING
    input.Body.rules[_].action.redirect.httpsRedirect == BOOLEAN
    input.Body.rules[_].action.redirect.pathRedirect == STRING
    input.Body.rules[_].action.redirect.portRedirect == INTEGER
    input.Body.rules[_].action.redirect.prefixRewrite == STRING
    input.Body.rules[_].action.redirect.responseCode == enum_HttpRouteRedirectResponseCode[_]
    input.Body.rules[_].action.redirect.stripQuery == BOOLEAN
    input.Body.rules[_].action.requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.serviceName == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.weight == INTEGER
    input.Body.rules[_].action.requestMirrorPolicy.mirrorPercent == NUMBER
    input.Body.rules[_].action.responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.retryPolicy.numRetries == INTEGER
    input.Body.rules[_].action.retryPolicy.perTryTimeout == STRING
    input.Body.rules[_].action.retryPolicy.retryConditions[_] == STRING
    input.Body.rules[_].action.statefulSessionAffinity.cookieTtl == STRING
    input.Body.rules[_].action.timeout == STRING
    input.Body.rules[_].action.urlRewrite.hostRewrite == STRING
    input.Body.rules[_].action.urlRewrite.pathPrefixRewrite == STRING
    input.Body.rules[_].matches[_].fullPathMatch == STRING
    input.Body.rules[_].matches[_].headers[_].exactMatch == STRING
    input.Body.rules[_].matches[_].headers[_].header == STRING
    input.Body.rules[_].matches[_].headers[_].invertMatch == BOOLEAN
    input.Body.rules[_].matches[_].headers[_].prefixMatch == STRING
    input.Body.rules[_].matches[_].headers[_].presentMatch == BOOLEAN
    input.Body.rules[_].matches[_].headers[_].rangeMatch.end == INTEGER
    input.Body.rules[_].matches[_].headers[_].rangeMatch.start == INTEGER
    input.Body.rules[_].matches[_].headers[_].regexMatch == STRING
    input.Body.rules[_].matches[_].headers[_].suffixMatch == STRING
    input.Body.rules[_].matches[_].ignoreCase == BOOLEAN
    input.Body.rules[_].matches[_].prefixMatch == STRING
    input.Body.rules[_].matches[_].queryParameters[_].exactMatch == STRING
    input.Body.rules[_].matches[_].queryParameters[_].presentMatch == BOOLEAN
    input.Body.rules[_].matches[_].queryParameters[_].queryParameter == STRING
    input.Body.rules[_].matches[_].queryParameters[_].regexMatch == STRING
    input.Body.rules[_].matches[_].regexMatch == STRING
    input.ReqMap.parent == STRING
    input.Qs.httpRouteId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.httpRoutes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.httpRoutes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.httpRoutes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.httpRoutes.patch

enum_HttpRouteRedirectResponseCode := [ "RESPONSE_CODE_UNSPECIFIED", "MOVED_PERMANENTLY_DEFAULT", "FOUND", "SEE_OTHER", "TEMPORARY_REDIRECT", "PERMANENT_REDIRECT" ]

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.hostnames[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.corsPolicy.allowCredentials == BOOLEAN
    input.Body.rules[_].action.corsPolicy.allowHeaders[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowMethods[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowOriginRegexes[_] == STRING
    input.Body.rules[_].action.corsPolicy.allowOrigins[_] == STRING
    input.Body.rules[_].action.corsPolicy.disabled == BOOLEAN
    input.Body.rules[_].action.corsPolicy.exposeHeaders[_] == STRING
    input.Body.rules[_].action.corsPolicy.maxAge == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.destinations[_].requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.destinations[_].responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.directResponse.bytesBody == STRING
    input.Body.rules[_].action.directResponse.status == INTEGER
    input.Body.rules[_].action.directResponse.stringBody == STRING
    input.Body.rules[_].action.faultInjectionPolicy.abort.httpStatus == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.abort.percentage == INTEGER
    input.Body.rules[_].action.faultInjectionPolicy.delay.fixedDelay == STRING
    input.Body.rules[_].action.faultInjectionPolicy.delay.percentage == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.redirect.hostRedirect == STRING
    input.Body.rules[_].action.redirect.httpsRedirect == BOOLEAN
    input.Body.rules[_].action.redirect.pathRedirect == STRING
    input.Body.rules[_].action.redirect.portRedirect == INTEGER
    input.Body.rules[_].action.redirect.prefixRewrite == STRING
    input.Body.rules[_].action.redirect.responseCode == enum_HttpRouteRedirectResponseCode[_]
    input.Body.rules[_].action.redirect.stripQuery == BOOLEAN
    input.Body.rules[_].action.requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.requestHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.serviceName == STRING
    input.Body.rules[_].action.requestMirrorPolicy.destination.weight == INTEGER
    input.Body.rules[_].action.requestMirrorPolicy.mirrorPercent == NUMBER
    input.Body.rules[_].action.responseHeaderModifier.add.STRING == STRING
    input.Body.rules[_].action.responseHeaderModifier.remove[_] == STRING
    input.Body.rules[_].action.responseHeaderModifier.set.STRING == STRING
    input.Body.rules[_].action.retryPolicy.numRetries == INTEGER
    input.Body.rules[_].action.retryPolicy.perTryTimeout == STRING
    input.Body.rules[_].action.retryPolicy.retryConditions[_] == STRING
    input.Body.rules[_].action.statefulSessionAffinity.cookieTtl == STRING
    input.Body.rules[_].action.timeout == STRING
    input.Body.rules[_].action.urlRewrite.hostRewrite == STRING
    input.Body.rules[_].action.urlRewrite.pathPrefixRewrite == STRING
    input.Body.rules[_].matches[_].fullPathMatch == STRING
    input.Body.rules[_].matches[_].headers[_].exactMatch == STRING
    input.Body.rules[_].matches[_].headers[_].header == STRING
    input.Body.rules[_].matches[_].headers[_].invertMatch == BOOLEAN
    input.Body.rules[_].matches[_].headers[_].prefixMatch == STRING
    input.Body.rules[_].matches[_].headers[_].presentMatch == BOOLEAN
    input.Body.rules[_].matches[_].headers[_].rangeMatch.end == INTEGER
    input.Body.rules[_].matches[_].headers[_].rangeMatch.start == INTEGER
    input.Body.rules[_].matches[_].headers[_].regexMatch == STRING
    input.Body.rules[_].matches[_].headers[_].suffixMatch == STRING
    input.Body.rules[_].matches[_].ignoreCase == BOOLEAN
    input.Body.rules[_].matches[_].prefixMatch == STRING
    input.Body.rules[_].matches[_].queryParameters[_].exactMatch == STRING
    input.Body.rules[_].matches[_].queryParameters[_].presentMatch == BOOLEAN
    input.Body.rules[_].matches[_].queryParameters[_].queryParameter == STRING
    input.Body.rules[_].matches[_].queryParameters[_].regexMatch == STRING
    input.Body.rules[_].matches[_].regexMatch == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbRouteExtensions.create

enum_ExtensionChainExtensionSupportedEvents := [ "EVENT_TYPE_UNSPECIFIED", "REQUEST_HEADERS", "REQUEST_BODY", "RESPONSE_HEADERS", "RESPONSE_BODY", "REQUEST_TRAILERS", "RESPONSE_TRAILERS" ]
enum_LbRouteExtensionLoadBalancingScheme := [ "LOAD_BALANCING_SCHEME_UNSPECIFIED", "INTERNAL_MANAGED", "EXTERNAL_MANAGED" ]

valid {
    input.Body.description == STRING
    input.Body.extensionChains[_].extensions[_].authority == STRING
    input.Body.extensionChains[_].extensions[_].failOpen == BOOLEAN
    input.Body.extensionChains[_].extensions[_].forwardHeaders[_] == STRING
    input.Body.extensionChains[_].extensions[_].name == STRING
    input.Body.extensionChains[_].extensions[_].service == STRING
    input.Body.extensionChains[_].extensions[_].supportedEvents[_] == enum_ExtensionChainExtensionSupportedEvents[_]
    input.Body.extensionChains[_].extensions[_].timeout == STRING
    input.Body.extensionChains[_].matchCondition.celExpression == STRING
    input.Body.extensionChains[_].name == STRING
    input.Body.forwardingRules[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingScheme == enum_LbRouteExtensionLoadBalancingScheme[_]
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.lbRouteExtensionId == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbRouteExtensions.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbRouteExtensions.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbRouteExtensions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbRouteExtensions.patch

enum_ExtensionChainExtensionSupportedEvents := [ "EVENT_TYPE_UNSPECIFIED", "REQUEST_HEADERS", "REQUEST_BODY", "RESPONSE_HEADERS", "RESPONSE_BODY", "REQUEST_TRAILERS", "RESPONSE_TRAILERS" ]
enum_LbRouteExtensionLoadBalancingScheme := [ "LOAD_BALANCING_SCHEME_UNSPECIFIED", "INTERNAL_MANAGED", "EXTERNAL_MANAGED" ]

valid {
    input.Body.description == STRING
    input.Body.extensionChains[_].extensions[_].authority == STRING
    input.Body.extensionChains[_].extensions[_].failOpen == BOOLEAN
    input.Body.extensionChains[_].extensions[_].forwardHeaders[_] == STRING
    input.Body.extensionChains[_].extensions[_].name == STRING
    input.Body.extensionChains[_].extensions[_].service == STRING
    input.Body.extensionChains[_].extensions[_].supportedEvents[_] == enum_ExtensionChainExtensionSupportedEvents[_]
    input.Body.extensionChains[_].extensions[_].timeout == STRING
    input.Body.extensionChains[_].matchCondition.celExpression == STRING
    input.Body.extensionChains[_].name == STRING
    input.Body.forwardingRules[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingScheme == enum_LbRouteExtensionLoadBalancingScheme[_]
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.requestId == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbTrafficExtensions.create

enum_ExtensionChainExtensionSupportedEvents := [ "EVENT_TYPE_UNSPECIFIED", "REQUEST_HEADERS", "REQUEST_BODY", "RESPONSE_HEADERS", "RESPONSE_BODY", "REQUEST_TRAILERS", "RESPONSE_TRAILERS" ]
enum_LbTrafficExtensionLoadBalancingScheme := [ "LOAD_BALANCING_SCHEME_UNSPECIFIED", "INTERNAL_MANAGED", "EXTERNAL_MANAGED" ]

valid {
    input.Body.description == STRING
    input.Body.extensionChains[_].extensions[_].authority == STRING
    input.Body.extensionChains[_].extensions[_].failOpen == BOOLEAN
    input.Body.extensionChains[_].extensions[_].forwardHeaders[_] == STRING
    input.Body.extensionChains[_].extensions[_].name == STRING
    input.Body.extensionChains[_].extensions[_].service == STRING
    input.Body.extensionChains[_].extensions[_].supportedEvents[_] == enum_ExtensionChainExtensionSupportedEvents[_]
    input.Body.extensionChains[_].extensions[_].timeout == STRING
    input.Body.extensionChains[_].matchCondition.celExpression == STRING
    input.Body.extensionChains[_].name == STRING
    input.Body.forwardingRules[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingScheme == enum_LbTrafficExtensionLoadBalancingScheme[_]
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.lbTrafficExtensionId == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbTrafficExtensions.delete

valid {
    input.ReqMap.name == STRING
    input.Qs.requestId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbTrafficExtensions.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbTrafficExtensions.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.filter == STRING
    input.Qs.orderBy == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.lbTrafficExtensions.patch

enum_ExtensionChainExtensionSupportedEvents := [ "EVENT_TYPE_UNSPECIFIED", "REQUEST_HEADERS", "REQUEST_BODY", "RESPONSE_HEADERS", "RESPONSE_BODY", "REQUEST_TRAILERS", "RESPONSE_TRAILERS" ]
enum_LbTrafficExtensionLoadBalancingScheme := [ "LOAD_BALANCING_SCHEME_UNSPECIFIED", "INTERNAL_MANAGED", "EXTERNAL_MANAGED" ]

valid {
    input.Body.description == STRING
    input.Body.extensionChains[_].extensions[_].authority == STRING
    input.Body.extensionChains[_].extensions[_].failOpen == BOOLEAN
    input.Body.extensionChains[_].extensions[_].forwardHeaders[_] == STRING
    input.Body.extensionChains[_].extensions[_].name == STRING
    input.Body.extensionChains[_].extensions[_].service == STRING
    input.Body.extensionChains[_].extensions[_].supportedEvents[_] == enum_ExtensionChainExtensionSupportedEvents[_]
    input.Body.extensionChains[_].extensions[_].timeout == STRING
    input.Body.extensionChains[_].matchCondition.celExpression == STRING
    input.Body.extensionChains[_].name == STRING
    input.Body.forwardingRules[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingScheme == enum_LbTrafficExtensionLoadBalancingScheme[_]
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.requestId == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.create

enum_MeshEnvoyHeaders := [ "ENVOY_HEADERS_UNSPECIFIED", "NONE", "DEBUG_HEADERS" ]

valid {
    input.Body.description == STRING
    input.Body.envoyHeaders == enum_MeshEnvoyHeaders[_]
    input.Body.interceptionPort == INTEGER
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.meshId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.patch

enum_MeshEnvoyHeaders := [ "ENVOY_HEADERS_UNSPECIFIED", "NONE", "DEBUG_HEADERS" ]

valid {
    input.Body.description == STRING
    input.Body.envoyHeaders == enum_MeshEnvoyHeaders[_]
    input.Body.interceptionPort == INTEGER
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.meshes.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.operations.cancel

valid {
    input.Body.STRING == STRING
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.operations.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.operations.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.operations.list

valid {
    input.ReqMap.name == STRING
    input.Qs.filter == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.create

valid {
    input.Body.description == STRING
    input.Body.labels.STRING == STRING
    input.Body.name == STRING
    input.Body.service == STRING
    input.ReqMap.parent == STRING
    input.Qs.serviceBindingId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceBindings.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.create

enum_ServiceLbPolicyLoadBalancingAlgorithm := [ "LOAD_BALANCING_ALGORITHM_UNSPECIFIED", "SPRAY_TO_WORLD", "SPRAY_TO_REGION", "WATERFALL_BY_REGION", "WATERFALL_BY_ZONE" ]

valid {
    input.Body.autoCapacityDrain.enable == BOOLEAN
    input.Body.description == STRING
    input.Body.failoverConfig.failoverHealthThreshold == INTEGER
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingAlgorithm == enum_ServiceLbPolicyLoadBalancingAlgorithm[_]
    input.Body.name == STRING
    input.ReqMap.parent == STRING
    input.Qs.serviceLbPolicyId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.getIamPolicy

valid {
    input.ReqMap.resource == STRING
    input.Qs.options.requestedPolicyVersion == INTEGER
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.patch

enum_ServiceLbPolicyLoadBalancingAlgorithm := [ "LOAD_BALANCING_ALGORITHM_UNSPECIFIED", "SPRAY_TO_WORLD", "SPRAY_TO_REGION", "WATERFALL_BY_REGION", "WATERFALL_BY_ZONE" ]

valid {
    input.Body.autoCapacityDrain.enable == BOOLEAN
    input.Body.description == STRING
    input.Body.failoverConfig.failoverHealthThreshold == INTEGER
    input.Body.labels.STRING == STRING
    input.Body.loadBalancingAlgorithm == enum_ServiceLbPolicyLoadBalancingAlgorithm[_]
    input.Body.name == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.setIamPolicy

enum_AuditLogConfigLogType := [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ]

valid {
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].exemptedMembers[_] == STRING
    input.Body.policy.auditConfigs[_].auditLogConfigs[_].logType == enum_AuditLogConfigLogType[_]
    input.Body.policy.auditConfigs[_].service == STRING
    input.Body.policy.bindings[_].condition.description == STRING
    input.Body.policy.bindings[_].condition.expression == STRING
    input.Body.policy.bindings[_].condition.location == STRING
    input.Body.policy.bindings[_].condition.title == STRING
    input.Body.policy.bindings[_].members[_] == STRING
    input.Body.policy.bindings[_].role == STRING
    input.Body.policy.etag == STRING
    input.Body.policy.version == INTEGER
    input.Body.updateMask == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.serviceLbPolicies.testIamPermissions

valid {
    input.Body.permissions[_] == STRING
    input.ReqMap.resource == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tcpRoutes.create

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.originalDestination == BOOLEAN
    input.Body.rules[_].matches[_].address == STRING
    input.Body.rules[_].matches[_].port == STRING
    input.ReqMap.parent == STRING
    input.Qs.tcpRouteId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tcpRoutes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tcpRoutes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tcpRoutes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tcpRoutes.patch

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].action.originalDestination == BOOLEAN
    input.Body.rules[_].matches[_].address == STRING
    input.Body.rules[_].matches[_].port == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tlsRoutes.create

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].matches[_].alpn[_] == STRING
    input.Body.rules[_].matches[_].sniHost[_] == STRING
    input.ReqMap.parent == STRING
    input.Qs.tlsRouteId == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tlsRoutes.delete

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tlsRoutes.get

valid {
    input.ReqMap.name == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tlsRoutes.list

valid {
    input.ReqMap.parent == STRING
    input.Qs.pageSize == INTEGER
    input.Qs.pageToken == STRING
    input.ProviderMetadata.Region == STRING
}

networkservices.projects.locations.tlsRoutes.patch

valid {
    input.Body.description == STRING
    input.Body.gateways[_] == STRING
    input.Body.labels.STRING == STRING
    input.Body.meshes[_] == STRING
    input.Body.name == STRING
    input.Body.rules[_].action.destinations[_].serviceName == STRING
    input.Body.rules[_].action.destinations[_].weight == INTEGER
    input.Body.rules[_].action.idleTimeout == STRING
    input.Body.rules[_].matches[_].alpn[_] == STRING
    input.Body.rules[_].matches[_].sniHost[_] == STRING
    input.ReqMap.name == STRING
    input.Qs.updateMask == STRING
    input.ProviderMetadata.Region == STRING
}