- HTTP request
- Request body
- Response body
- Authorization scopes
- LintResult
- Level
- Severity
- Examples
- Try it!
Lints, or validates, an IAM policy. Currently checks the  google.iam.v1.Binding.condition 
 
field, which contains a condition expression for a role binding.
Successful calls to this method always return an HTTP 200 OK 
status code, even if the linter detects an issue in the IAM policy.
HTTP request
 POST https://iam.googleapis.com/v1/iamPolicies:lintPolicy 
The URL uses gRPC Transcoding syntax.
Request body
The request body contains data with the following structure:
| JSON representation | 
|---|
| { "fullResourceName" : string , // Union field | 
fullResourceName 
 string 
The full resource name of the policy this lint request is about.
The name follows the Google Cloud format for full resource names. For example, a Google Cloud project with ID my-project 
will be named //cloudresourcemanager.googleapis.com/projects/my-project 
.
The resource name is not used to read a policy from IAM. Only the data in the request object is linted.
lint_object 
. Required. The IAM object to be linted. lint_object 
can be only one of the following:condition 
 object (  
 Expr 
 
)
  google.iam.v1.Binding.condition 
 
object to be linted.
Response body
The response of a lint operation. An empty response indicates the operation was able to fully execute and no lint issue was found.
If successful, the response body contains data with the following structure:
| JSON representation | 
|---|
|  { 
 "lintResults" 
 : 
 [ 
 { 
 object (  | 
| Fields | |
|---|---|
| lintResults[] |   List of lint results sorted by  | 
Authorization scopes
Requires one of the following OAuth scopes:
-  https://www.googleapis.com/auth/iam
-  https://www.googleapis.com/auth/cloud-platform
For more information, see the Authentication Overview .
LintResult
Structured response of a single validation unit.
| JSON representation | 
|---|
| { "level" : enum ( | 
| Fields | |
|---|---|
| level |   The validation unit level. | 
| validationUnitName |   The validation unit name, for instance "lintValidationUnits/ConditionComplexityCheck". | 
| severity |   The validation unit severity. | 
| fieldName |   The name of the field for which this lint result is about. For nested messages  | 
| locationOffset |   0-based character position of problematic construct within the object identified by  | 
Level
Possible Level values of a validation unit corresponding to its domain of discourse.
| Enums | |
|---|---|
| LEVEL_UNSPECIFIED | Level is unspecified. | 
| CONDITION | A validation unit which operates on an individual condition within a binding. | 
Severity
Possible Severity values of an issued result.
SEVERITY_UNSPECIFIED 
ERROR 
setPolicy 
operation to fail.WARNING 
Any issue which is severe enough but does not cause an error. For example, suspicious constructs in the input object will not necessarily fail setPolicy 
, but there is a high likelihood that they won't behave as expected during policy evaluation in checkPolicy 
. This includes the following common scenarios:
- Unsatisfiable condition: Expired timestamp in date/time condition.
- Ineffective condition: Condition on a <principal, role> pair which is granted unconditionally in another binding of the same policy.
NOTICE 
ERROR 
/ WARNING 
, but need special handling. For instance, messages about skipped validation units are issued as NOTICE 
.INFO 
ERROR 
/ WARNING 
/ NOTICE 
, like auto-correction recommendations on the input content. Note that current version of the linter does not utilize INFO 
.DEPRECATED 

