Cloud Infrastructure

The /cloudInfrastructure resource collection represents all infrastructure objects (projects and folders) added to the Veeam Backup for Google Cloud configuration database.

Get Infrastructure Objects

The HTTP GET request to the /api/v1/cloudInfrastructure endpoint retrieves a list of all infrastructure objects (folders and projects) added to the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
query Parameters
filter
string

Returns only specific items of a resource collection in the response. To learn how to use the filter parameter, see the Veeam Backup for Google Cloud REST API Reference, section Filter Parameter.

orderby
string

Specifies the order of items in the response. For more information, see the Veeam Backup for Google Cloud REST API Reference Overview, section Orderby Parameter.

offset
integer <int32>

Specifies the first N items of a resource collection that will be excluded from the response.

limit
integer <int32>

Specifies the maximum number of items of a resource collection that will be returned in the response.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/cloudInfrastructure
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Add Folder

The HTTP POST request to the /api/v1/cloudInfrastructure​/folders endpoint adds a folder existing in Google Cloud to the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Request Body schema: application/json
required
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

organizationId
required
string

Specifies the Google Cloud ID assigned to an organization. For more information, see Google Cloud Documentation.

required
object (CloudInfrastructureObjectPermissionsModel)

Specifies information on permissions of a service account to the infrastructure object.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/cloudInfrastructure/folders
Request samples
application/json
{
  • "folderId": "string",
  • "organizationId": "string",
  • "permissions": {
    }
}
Response samples
application/json
{
  • "infrastructureObject": {
    },
  • "issues": [
    ]
}

Get Service Account Permissions To Folder

The HTTP GET request to the /api/v1/cloudInfrastructure/folders​/{folderId}​/serviceAccount​/{serviceAccountId} endpoint retrieves information on permissions of a specific service account to a folder with the specified ID.

SecurityBearer
Request
path Parameters
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/cloudInfrastructure/folders/{folderId}/serviceAccount/{serviceAccountId}
Request samples
Response samples
application/json
{
  • "id": "string",
  • "displayName": "string",
  • "type": "folder",
  • "permissions": {
    }
}

Modify Service Account Permissions To Folder

The HTTP PUT request to the /api/v1/cloudInfrastructure​/folders​/{folderId}​/serviceAccount​/{serviceAccountId} endpoint updates permissions of a specific service account to a folder with the specified ID.

SecurityBearer
Request
path Parameters
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Request Body schema: application/json
required
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

organizationId
required
string

Specifies the Google Cloud ID assigned to an organization. For more information, see Google Cloud Documentation.

required
object (CloudInfrastructureObjectPermissionsModel)

Specifies information on permissions of a service account to the infrastructure object.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

put/api/v1/cloudInfrastructure/folders/{folderId}/serviceAccount/{serviceAccountId}
Request samples
application/json
{
  • "folderId": "string",
  • "organizationId": "string",
  • "permissions": {
    }
}
Response samples
application/json
{
  • "infrastructureObject": {
    },
  • "issues": [
    ]
}

Remove Folder

The HTTP DELETE request to the /api/v1/cloudInfrastructure​/folders​/{folderId}​/serviceAccount​/{serviceAccountId} endpoint removes a folder with the specified ID from the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
path Parameters
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
204

No Content

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

delete/api/v1/cloudInfrastructure/folders/{folderId}/serviceAccount/{serviceAccountId}
Request samples
Response samples
application/json
{
  • "success": true,
  • "issues": [
    ]
}

Add Project

The HTTP POST request to the /api​/v1​/cloudInfrastructure​/projects endpoint adds a project existing in Google Cloud to the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Request Body schema: application/json
required
name
required
string

Specifies the Google Cloud ID assigned to a project.

required
object (CloudInfrastructureObjectPermissionsModel)

Specifies information on permissions of a service account to the infrastructure object.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/cloudInfrastructure/projects
Request samples
application/json
{
  • "name": "string",
  • "permissions": {
    }
}
Response samples
application/json
{
  • "infrastructureObject": {
    },
  • "issues": [
    ]
}

Get Service Account Permissions To Project

The HTTP GET request to the ​/api​/v1​/cloudInfrastructure​/projects​/{projectId}​/serviceAccount​/{serviceAccountId} endpoint retrieves information on permissions of a specific service account to a project with the specified ID.

SecurityBearer
Request
path Parameters
projectId
required
string

Specifies the Google Cloud ID assigned to a project.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/cloudInfrastructure/projects/{projectId}/serviceAccount/{serviceAccountId}
Request samples
Response samples
application/json
{
  • "id": "string",
  • "displayName": "string",
  • "type": "folder",
  • "permissions": {
    }
}

Modify Service Account Permissions To Project

The HTTP PUT request to the ​/api​/v1​/cloudInfrastructure​/projects​/{projectId}​/serviceAccount​/{serviceAccountId} endpoint updates the list of permissions of a specific service account to a project with the specified ID.

SecurityBearer
Request
path Parameters
projectId
required
string

Specifies the Google Cloud ID assigned to a project.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Request Body schema: application/json
required
name
required
string

Specifies the Google Cloud ID assigned to a project.

required
object (CloudInfrastructureObjectPermissionsModel)

Specifies information on permissions of a service account to the infrastructure object.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

put/api/v1/cloudInfrastructure/projects/{projectId}/serviceAccount/{serviceAccountId}
Request samples
application/json
{
  • "name": "string",
  • "permissions": {
    }
}
Response samples
application/json
{
  • "infrastructureObject": {
    },
  • "issues": [
    ]
}

Remove Project

The HTTP DELETE request to the ​/api​/v1​/cloudInfrastructure​/projects​/{projectId}​/serviceAccount​/{serviceAccountId} endpoint removes a project with the specified ID from the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
path Parameters
projectId
required
string

Specifies the Google Cloud ID assigned to a project.

serviceAccountId
required
string <uuid>

Specifies the system ID assigned to a service account in the Veeam Backup for Google Cloud REST API.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
204

No Content

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

404

Not Found. One or more resources specified in the request could not be found in the specified resource collection.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

delete/api/v1/cloudInfrastructure/projects/{projectId}/serviceAccount/{serviceAccountId}
Request samples
Response samples
application/json
{
  • "success": true,
  • "issues": [
    ]
}

Generate Permissions Script

The HTTP POST request to the /cloudInfrastructure/downloadServiceAccountScript endpoint generates a script that you can further use in Google Cloud console to assign specific permissions to a service account to access the specified infrastructure object.

SecurityBearer
Request
header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Request Body schema: application/json
required
serviceAccountId
required
string <uuid>

Specifies the system ID assigned in the Veeam Backup for Google Cloud REST API to a service account that will be used to access the specified project.

useForSnapshot
required
boolean

Defines whether VM instances that belong to the project can be protected by cloud-native snapshots using the specified service account.

useForBackup
required
boolean

Defines whether VM instances that belong to the project can be protected by image-level backups using the specified service account.

useForRestore
required
boolean

Defines whether VM instances can be restored to the project using the specified service account.

useForRepository
required
boolean

Defines whether backup repositories can be deployed to the project using the specified service account.

useForWorker
required
boolean

Defines whether worker instances can be launched in the project using the specified service account.

useForSqlSnapshot
required
boolean

Defines whether Cloud SQL instances that belong to the project can be protected by cloud-native snapshots using the specified service account.

useForSqlBackup
required
boolean

Defines whether Cloud SQL instances that belong to the project can be protected by image-level backups using the specified service account.

useForSqlRestore
required
boolean

Defines whether Cloud SQL instances can be restored to the project using the specified service account.

useForSqlStaging
required
boolean

Defines whether Cloud SQL staging instances can be launched in the project using the specified service account.

useForSpannerSnapshot
required
boolean

Defines whether Cloud Spanner instances that belong to the infrastructure object can be protected by cloud-native snapshots using the specified service account.

useForSpannerBackup
required
boolean

Defines whether Cloud Spanner instances that belong to the infrastructure object can be protected by image-level backups using the specified service account.

useForSpannerRestore
required
boolean

Defines whether Cloud Spanner instances can be restored to the infrastructure object using the specified service account.

useForFlrRto
required
boolean

Defines whether file-level recovery to the original location can be performed in the infrastructure object using the specified service account.

useForFlrRtoWorker
required
boolean

Defines whether the worker instances can be launched for file-level recovery to the original location in the infrastructure object using the specified service account.

projectId
string

Specifies the Google Cloud ID assigned to a project.

folderId
string

Specifies the Google Cloud ID assigned to a folder.

organizationId
string

Specifies the Google Cloud ID assigned to an organization. For more information, see Google Cloud Documentation.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

post/api/v1/cloudInfrastructure/downloadServiceAccountScript
Request samples
application/json
{
  • "projectId": "string",
  • "folderId": "string",
  • "organizationId": "string",
  • "serviceAccountId": "a814cf67-aaac-43ae-acb4-8d34e82a4b4c",
  • "useForSnapshot": true,
  • "useForBackup": true,
  • "useForRestore": true,
  • "useForRepository": true,
  • "useForWorker": true,
  • "useForSqlSnapshot": true,
  • "useForSqlBackup": true,
  • "useForSqlRestore": true,
  • "useForSqlStaging": true,
  • "useForSpannerSnapshot": true,
  • "useForSpannerBackup": true,
  • "useForSpannerRestore": true,
  • "useForFlrRto": true,
  • "useForFlrRtoWorker": true
}
Response samples
"string"

Get Subfolders

The HTTP GET request to the /api/v1/folders/{folderId}/subFolders endpoint retrieves a list of subfolders of a folder added to the Veeam Backup for Google Cloud configuration database.

SecurityBearer
Request
path Parameters
folderId
required
string

Specifies the Google Cloud ID assigned to a folder.

query Parameters
filter
string

Returns only specific items of a resource collection in the response. To learn how to use the filter parameter, see the Veeam Backup for Google Cloud REST API Reference, section Filter Parameter.

orderby
string

Specifies the order of items in the response. For more information, see the Veeam Backup for Google Cloud REST API Reference Overview, section Orderby Parameter.

offset
integer <int32>

Specifies the first N items of a resource collection that will be excluded from the response.

limit
integer <int32>

Specifies the maximum number of items of a resource collection that will be returned in the response.

header Parameters
x-api-version
required
string
Default: 1.4-rev0

Specifies the current revision of the Veeam Backup for Google Cloud REST API.

Responses
200

OK

400

Bad Request. The request body is malformed, incomplete or otherwise invalid

401

Unauthorized. The authorization header has been expected but not found (or found but is expired).

403

Forbidden. The user sending a request does not have adequate privileges to access one or more objects specified in the request.

500

Internal Server Error. The request has been received but could not be completed because of an internal error at the server side.

get/api/v1/cloudInfrastructure/folders/{folderId}/subFolders
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "pagination": {
    }
}

Document updated 11/19/2025

Page content applies to build 7.0.0.47