Changing Project Owner Account

In order to transfer a project from one account to another, the following mutation is called:

mutation changeProjectOwner(params: ChangeProjectOwnerInput!): ChangeProjectOwnerUnion!
 
input ChangeProjectOwnerInput {
    tenantId: ID # Ignored when called by a tenant admin, only useful when called by
    # an application admin
    projectId: ID!
    newAccountId: ID!
    newProjectOwnerId: ID # If not specified, the system will select an admin from the target
    # account;
    # if there's more than one admin, the one with the most recent lastLoginTime will be selected
}
 
union ChangeProjectOwnerUnion = ProjectOutput
    | AcsErrorOperationNotAllowedOutput
    | AcsErrorProjectNotFoundOutput
    | AcsErrorUserNotFoundOutput
    | AcsErrorTenantNotFoundOutput
    | AcsErrorSeatLimitReachedOutput
    | AcsErrorStorageLimitReachedOutput
 

This mutation can be called by either application admin or a user with the tenant capability of CAN_CHANGE_PROJECT_OWNER (this capability is connected to the TENANT_ADMIN role).

As a result of this mutation:

  • all existing users of the project are removed
  • the (tenant) admin that performs the call will be added as viewer
  • the user indicated in the call becomes the new owner
  • the account indicated in the call will own the project, and the consumption of that project will be added to the usage count of the targeting account