Class ServiceAccountKey (3.50.0)

public final class ServiceAccountKey extends GeneratedMessageV3 implements ServiceAccountKeyOrBuilder

Represents a service account key.

A service account has two sets of key-pairs: user-managed, and system-managed.

User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key.

System-managed keys are automatically rotated by Google, and are used for signing for a maximum of two weeks. The rotation process is probabilistic, and usage of the new key will gradually ramp up and down over the key's lifetime.

If you cache the public key set for a service account, we recommend that you update the cache every 15 minutes. User-managed keys can be added and removed at any time, so it is important to update the cache frequently. For Google-managed keys, Google will publish a key at least 6 hours before it is first used for signing and will keep publishing it for at least 6 hours after it was last used for signing.

Public keys for all service accounts are also published at the OAuth2 Service Account API.

Protobuf type google.iam.admin.v1.ServiceAccountKey

Static Fields

DISABLED_FIELD_NUMBER

public static final int DISABLED_FIELD_NUMBER
Field Value
Type Description
int

KEY_ALGORITHM_FIELD_NUMBER

public static final int KEY_ALGORITHM_FIELD_NUMBER
Field Value
Type Description
int

KEY_ORIGIN_FIELD_NUMBER

public static final int KEY_ORIGIN_FIELD_NUMBER
Field Value
Type Description
int

KEY_TYPE_FIELD_NUMBER

public static final int KEY_TYPE_FIELD_NUMBER
Field Value
Type Description
int

NAME_FIELD_NUMBER

public static final int NAME_FIELD_NUMBER
Field Value
Type Description
int

PRIVATE_KEY_DATA_FIELD_NUMBER

public static final int PRIVATE_KEY_DATA_FIELD_NUMBER
Field Value
Type Description
int

PRIVATE_KEY_TYPE_FIELD_NUMBER

public static final int PRIVATE_KEY_TYPE_FIELD_NUMBER
Field Value
Type Description
int

PUBLIC_KEY_DATA_FIELD_NUMBER

public static final int PUBLIC_KEY_DATA_FIELD_NUMBER
Field Value
Type Description
int

VALID_AFTER_TIME_FIELD_NUMBER

public static final int VALID_AFTER_TIME_FIELD_NUMBER
Field Value
Type Description
int

VALID_BEFORE_TIME_FIELD_NUMBER

public static final int VALID_BEFORE_TIME_FIELD_NUMBER
Field Value
Type Description
int

Static Methods

getDefaultInstance()

public static ServiceAccountKey getDefaultInstance()
Returns
Type Description
ServiceAccountKey

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
Type Description
Descriptor

newBuilder()

public static ServiceAccountKey.Builder newBuilder()
Returns
Type Description
ServiceAccountKey.Builder

newBuilder(ServiceAccountKey prototype)

public static ServiceAccountKey.Builder newBuilder(ServiceAccountKey prototype)
Parameter
Name Description
prototype ServiceAccountKey
Returns
Type Description
ServiceAccountKey.Builder

parseDelimitedFrom(InputStream input)

public static ServiceAccountKey parseDelimitedFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseFrom(byte[] data)

public static ServiceAccountKey parseFrom(byte[] data)
Parameter
Name Description
data byte[]
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data byte[]
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data)

public static ServiceAccountKey parseFrom(ByteString data)
Parameter
Name Description
data ByteString
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteString
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static ServiceAccountKey parseFrom(CodedInputStream input)
Parameter
Name Description
input CodedInputStream
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input CodedInputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseFrom(InputStream input)

public static ServiceAccountKey parseFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
IOException

parseFrom(ByteBuffer data)

public static ServiceAccountKey parseFrom(ByteBuffer data)
Parameter
Name Description
data ByteBuffer
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static ServiceAccountKey parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteBuffer
extensionRegistry ExtensionRegistryLite
Returns
Type Description
ServiceAccountKey
Exceptions
Type Description
InvalidProtocolBufferException

parser()

public static Parser<ServiceAccountKey> parser()
Returns
Type Description
Parser<ServiceAccountKey>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
Name Description
obj Object
Returns
Type Description
boolean
Overrides

getDefaultInstanceForType()

public ServiceAccountKey getDefaultInstanceForType()
Returns
Type Description
ServiceAccountKey

getDisabled()

public boolean getDisabled()

The key status.

bool disabled = 11;

Returns
Type Description
boolean

The disabled.

getKeyAlgorithm()

public ServiceAccountKeyAlgorithm getKeyAlgorithm()

Specifies the algorithm (and possibly key size) for the key.

.google.iam.admin.v1.ServiceAccountKeyAlgorithm key_algorithm = 8;

Returns
Type Description
ServiceAccountKeyAlgorithm

The keyAlgorithm.

getKeyAlgorithmValue()

public int getKeyAlgorithmValue()

Specifies the algorithm (and possibly key size) for the key.

.google.iam.admin.v1.ServiceAccountKeyAlgorithm key_algorithm = 8;

Returns
Type Description
int

The enum numeric value on the wire for keyAlgorithm.

getKeyOrigin()

public ServiceAccountKeyOrigin getKeyOrigin()

The key origin.

.google.iam.admin.v1.ServiceAccountKeyOrigin key_origin = 9;

Returns
Type Description
ServiceAccountKeyOrigin

The keyOrigin.

getKeyOriginValue()

public int getKeyOriginValue()

The key origin.

.google.iam.admin.v1.ServiceAccountKeyOrigin key_origin = 9;

Returns
Type Description
int

The enum numeric value on the wire for keyOrigin.

getKeyType()

public ListServiceAccountKeysRequest.KeyType getKeyType()

The key type.

.google.iam.admin.v1.ListServiceAccountKeysRequest.KeyType key_type = 10;

Returns
Type Description
ListServiceAccountKeysRequest.KeyType

The keyType.

getKeyTypeValue()

public int getKeyTypeValue()

The key type.

.google.iam.admin.v1.ListServiceAccountKeysRequest.KeyType key_type = 10;

Returns
Type Description
int

The enum numeric value on the wire for keyType.

getName()

public String getName()

The resource name of the service account key in the following format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}.

string name = 1;

Returns
Type Description
String

The name.

getNameBytes()

public ByteString getNameBytes()

The resource name of the service account key in the following format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}.

string name = 1;

Returns
Type Description
ByteString

The bytes for name.

getParserForType()

public Parser<ServiceAccountKey> getParserForType()
Returns
Type Description
Parser<ServiceAccountKey>
Overrides

getPrivateKeyData()

public ByteString getPrivateKeyData()

The private key data. Only provided in CreateServiceAccountKey responses. Make sure to keep the private key data secure because it allows for the assertion of the service account identity. When base64 decoded, the private key data can be used to authenticate with Google API client libraries and with <a href="/sdk/gcloud/reference/auth/activate-service-account">gcloud auth activate-service-account</a>.

bytes private_key_data = 3;

Returns
Type Description
ByteString

The privateKeyData.

getPrivateKeyType()

public ServiceAccountPrivateKeyType getPrivateKeyType()

The output format for the private key. Only provided in CreateServiceAccountKey responses, not in GetServiceAccountKey or ListServiceAccountKey responses.

Google never exposes system-managed private keys, and never retains user-managed private keys.

.google.iam.admin.v1.ServiceAccountPrivateKeyType private_key_type = 2;

Returns
Type Description
ServiceAccountPrivateKeyType

The privateKeyType.

getPrivateKeyTypeValue()

public int getPrivateKeyTypeValue()

The output format for the private key. Only provided in CreateServiceAccountKey responses, not in GetServiceAccountKey or ListServiceAccountKey responses.

Google never exposes system-managed private keys, and never retains user-managed private keys.

.google.iam.admin.v1.ServiceAccountPrivateKeyType private_key_type = 2;

Returns
Type Description
int

The enum numeric value on the wire for privateKeyType.

getPublicKeyData()

public ByteString getPublicKeyData()

The public key data. Only provided in GetServiceAccountKey responses.

bytes public_key_data = 7;

Returns
Type Description
ByteString

The publicKeyData.

getSerializedSize()

public int getSerializedSize()
Returns
Type Description
int
Overrides

getValidAfterTime()

public Timestamp getValidAfterTime()

The key can be used after this timestamp.

.google.protobuf.Timestamp valid_after_time = 4;

Returns
Type Description
Timestamp

The validAfterTime.

getValidAfterTimeOrBuilder()

public TimestampOrBuilder getValidAfterTimeOrBuilder()

The key can be used after this timestamp.

.google.protobuf.Timestamp valid_after_time = 4;

Returns
Type Description
TimestampOrBuilder

getValidBeforeTime()

public Timestamp getValidBeforeTime()

The key can be used before this timestamp. For system-managed key pairs, this timestamp is the end time for the private key signing operation. The public key could still be used for verification for a few hours after this time.

.google.protobuf.Timestamp valid_before_time = 5;

Returns
Type Description
Timestamp

The validBeforeTime.

getValidBeforeTimeOrBuilder()

public TimestampOrBuilder getValidBeforeTimeOrBuilder()

The key can be used before this timestamp. For system-managed key pairs, this timestamp is the end time for the private key signing operation. The public key could still be used for verification for a few hours after this time.

.google.protobuf.Timestamp valid_before_time = 5;

Returns
Type Description
TimestampOrBuilder

hasValidAfterTime()

public boolean hasValidAfterTime()

The key can be used after this timestamp.

.google.protobuf.Timestamp valid_after_time = 4;

Returns
Type Description
boolean

Whether the validAfterTime field is set.

hasValidBeforeTime()

public boolean hasValidBeforeTime()

The key can be used before this timestamp. For system-managed key pairs, this timestamp is the end time for the private key signing operation. The public key could still be used for verification for a few hours after this time.

.google.protobuf.Timestamp valid_before_time = 5;

Returns
Type Description
boolean

Whether the validBeforeTime field is set.

hashCode()

public int hashCode()
Returns
Type Description
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
Type Description
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
Type Description
boolean
Overrides

newBuilderForType()

public ServiceAccountKey.Builder newBuilderForType()
Returns
Type Description
ServiceAccountKey.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected ServiceAccountKey.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
Name Description
parent BuilderParent
Returns
Type Description
ServiceAccountKey.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
Name Description
unused UnusedPrivateParameter
Returns
Type Description
Object
Overrides

toBuilder()

public ServiceAccountKey.Builder toBuilder()
Returns
Type Description
ServiceAccountKey.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
Name Description
output CodedOutputStream
Overrides
Exceptions
Type Description
IOException