Uploads the public key portion of a key pair that you manage, and associates the public key with a  ServiceAccount 
 
.
After you upload the public key, you can use the private key from the key pair as a service account key.
HTTP request
 POST https://iam.googleapis.com/v1/{name=projects/*/serviceAccounts/*}/keys:upload 
The URL uses gRPC Transcoding syntax.
Path parameters
name 
 string 
The resource name of the service account key.
Use one of the following formats:
-  projects/{PROJECT_ID}/serviceAccounts/{EMAIL_ADDRESS}
-  projects/{PROJECT_ID}/serviceAccounts/{UNIQUE_ID}
As an alternative, you can use the - 
wildcard character instead of the project ID:
-  projects/-/serviceAccounts/{EMAIL_ADDRESS}
-  projects/-/serviceAccounts/{UNIQUE_ID}
When possible, avoid using the - 
wildcard character, because it can cause response messages to contain misleading error codes. For example, if you try to access the service account projects/-/serviceAccounts/fake@example.com 
, which does not exist, the response contains an HTTP 403 Forbidden 
error instead of a 404 Not
                  Found 
error.
Authorization requires the following IAM 
permission on the specified resource name 
:
-  iam.serviceAccountKeys.create
Request body
The request body contains data with the following structure:
| JSON representation | 
|---|
| { "publicKeyData" : string } | 
| Fields | |
|---|---|
| publicKeyData |   The public key to associate with the service account. Must be an RSA public key that is wrapped in an X.509 v3 certificate. Include the first line,  A base64-encoded string. | 
Response body
If successful, the response body contains an instance of  ServiceAccountKey 
 
.
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 .

