Base class for the server implementation of the service IAM.
Creates and manages Identity and Access Management (IAM) resources.
You can use this service to work with all of the following resources:
Service accounts, which identify an application or a virtual machine
(VM) instance rather than a person
Service account keys, which service accounts use to authenticate with
Google APIs
IAM policies for service accounts, which specify the roles that a
principal has for the service account
IAM custom roles, which help you limit the number of permissions that
you grant to principals
In addition, you can use this service to complete the following tasks, among
others:
Test whether a service account can use specific permissions
Check which roles you can grant for a specific resource
Lint, or validate, condition expressions in an IAM policy
When you read data from the IAM API, each read is eventually consistent. In
other words, if you write data with the IAM API, then immediately read that
data, the read operation might return an older version of the data. To deal
with this behavior, your application can retry the request with truncated
exponential backoff.
In contrast, writing data to the IAM API is sequentially consistent. In other
words, write operations are always processed in the order in which they were
received.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-16 UTC."],[],[],null,["# Class IAMGrpc.IAMImplBase (3.67.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.67.0 (latest)](/java/docs/reference/google-iam-admin/latest/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.65.0](/java/docs/reference/google-iam-admin/3.65.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.63.0](/java/docs/reference/google-iam-admin/3.63.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.62.0](/java/docs/reference/google-iam-admin/3.62.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.59.0](/java/docs/reference/google-iam-admin/3.59.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.58.0](/java/docs/reference/google-iam-admin/3.58.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.57.0](/java/docs/reference/google-iam-admin/3.57.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.55.0](/java/docs/reference/google-iam-admin/3.55.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.54.0](/java/docs/reference/google-iam-admin/3.54.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.53.0](/java/docs/reference/google-iam-admin/3.53.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.52.0](/java/docs/reference/google-iam-admin/3.52.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.51.0](/java/docs/reference/google-iam-admin/3.51.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.50.0](/java/docs/reference/google-iam-admin/3.50.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.49.0](/java/docs/reference/google-iam-admin/3.49.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.48.0](/java/docs/reference/google-iam-admin/3.48.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.47.0](/java/docs/reference/google-iam-admin/3.47.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.44.0](/java/docs/reference/google-iam-admin/3.44.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.43.0](/java/docs/reference/google-iam-admin/3.43.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.42.0](/java/docs/reference/google-iam-admin/3.42.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.41.0](/java/docs/reference/google-iam-admin/3.41.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.40.0](/java/docs/reference/google-iam-admin/3.40.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.39.0](/java/docs/reference/google-iam-admin/3.39.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.38.0](/java/docs/reference/google-iam-admin/3.38.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.37.0](/java/docs/reference/google-iam-admin/3.37.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.36.0](/java/docs/reference/google-iam-admin/3.36.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.35.0](/java/docs/reference/google-iam-admin/3.35.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.34.0](/java/docs/reference/google-iam-admin/3.34.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.32.0](/java/docs/reference/google-iam-admin/3.32.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.31.0](/java/docs/reference/google-iam-admin/3.31.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.30.0](/java/docs/reference/google-iam-admin/3.30.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.29.0](/java/docs/reference/google-iam-admin/3.29.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.28.0](/java/docs/reference/google-iam-admin/3.28.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.27.0](/java/docs/reference/google-iam-admin/3.27.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.26.0](/java/docs/reference/google-iam-admin/3.26.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.25.0](/java/docs/reference/google-iam-admin/3.25.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.24.0](/java/docs/reference/google-iam-admin/3.24.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.23.0](/java/docs/reference/google-iam-admin/3.23.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.22.0](/java/docs/reference/google-iam-admin/3.22.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.19.0](/java/docs/reference/google-iam-admin/3.19.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.18.0](/java/docs/reference/google-iam-admin/3.18.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.17.0](/java/docs/reference/google-iam-admin/3.17.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.16.0](/java/docs/reference/google-iam-admin/3.16.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.15.0](/java/docs/reference/google-iam-admin/3.15.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.14.0](/java/docs/reference/google-iam-admin/3.14.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.13.0](/java/docs/reference/google-iam-admin/3.13.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.12.0](/java/docs/reference/google-iam-admin/3.12.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.11.0](/java/docs/reference/google-iam-admin/3.11.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.10.0](/java/docs/reference/google-iam-admin/3.10.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.9.0](/java/docs/reference/google-iam-admin/3.9.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.8.0](/java/docs/reference/google-iam-admin/3.8.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.7.0](/java/docs/reference/google-iam-admin/3.7.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.6.0](/java/docs/reference/google-iam-admin/3.6.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.4.0](/java/docs/reference/google-iam-admin/3.4.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.3.0](/java/docs/reference/google-iam-admin/3.3.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.2.0](/java/docs/reference/google-iam-admin/3.2.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.1.0](/java/docs/reference/google-iam-admin/3.1.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [3.0.0](/java/docs/reference/google-iam-admin/3.0.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [2.0.0](/java/docs/reference/google-iam-admin/2.0.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [1.2.5](/java/docs/reference/google-iam-admin/1.2.5/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [1.1.8](/java/docs/reference/google-iam-admin/1.1.8/com.google.iam.admin.v1.IAMGrpc.IAMImplBase)\n- [0.2.0](/java/docs/reference/google-iam-admin/0.2.0/com.google.iam.admin.v1.IAMGrpc.IAMImplBase) \n\n public abstract static class IAMGrpc.IAMImplBase implements BindableService, IAMGrpc.AsyncService\n\nBase class for the server implementation of the service IAM.\n\nCreates and manages Identity and Access Management (IAM) resources.\nYou can use this service to work with all of the following resources:\n\n- **Service accounts**, which identify an application or a virtual machine (VM) instance rather than a person\n- **Service account keys**, which service accounts use to authenticate with Google APIs\n- **IAM policies for service accounts**, which specify the roles that a principal has for the service account\n- **IAM custom roles**, which help you limit the number of permissions that you grant to principals In addition, you can use this service to complete the following tasks, among others:\n- Test whether a service account can use specific permissions\n- Check which roles you can grant for a specific resource\n- Lint, or validate, condition expressions in an IAM policy When you read data from the IAM API, each read is eventually consistent. In other words, if you write data with the IAM API, then immediately read that data, the read operation might return an older version of the data. To deal with this behavior, your application can retry the request with truncated exponential backoff. In contrast, writing data to the IAM API is sequentially consistent. In other words, write operations are always processed in the order in which they were received. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e IAMGrpc.IAMImplBase \n\nImplements\n----------\n\nio.grpc.BindableService, [IAMGrpc.AsyncService](/java/docs/reference/google-iam-admin/latest/com.google.iam.admin.v1.IAMGrpc.AsyncService) \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### IAMImplBase()\n\n public IAMImplBase()\n\nMethods\n-------\n\n### bindService()\n\n public final ServerServiceDefinition bindService()"]]