Tool: list_assets
List assets from Cloud Asset Inventory
The following sample demonstrate how to use curl
to invoke the list_assets
MCP tool.
| Curl Request |
|---|
curl --location 'https://cloudasset.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_assets", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Input Schema
ListAssets request.
ListAssetsRequest
| JSON representation |
|---|
{
"parent"
:
string
,
"readTime"
:
string
,
"assetTypes"
:
[
string
]
,
"contentType"
:
enum (
|
parent
string
Required. Name of the organization, folder, or project the assets belong to. Format: "organizations/[organization-number]" (such as "organizations/123"), "projects/[project-id]" (such as "projects/my-project-id"), "projects/[project-number]" (such as "projects/12345"), or "folders/[folder-number]" (such as "folders/12345").
readTime
string (
Timestamp
format)
Timestamp to take an asset snapshot. This can only be set to a timestamp between the current time and the current time minus 35 days (inclusive). If not specified, the current time will be used. Due to delays in resource data collection and indexing, there is a volatile window during which running the same query may get different results.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
assetTypes[]
string
A list of asset types to take a snapshot for. For example: "compute.googleapis.com/Disk".
Regular expression is also supported. For example:
- "compute.googleapis.com.*" snapshots resources whose asset type starts with "compute.googleapis.com".
- ".*Instance" snapshots resources whose asset type ends with "Instance".
- ".*Instance.*" snapshots resources whose asset type contains "Instance".
See RE2 for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.
If specified, only matching assets will be returned, otherwise, it will snapshot all asset types. See Introduction to Cloud Asset Inventory for all supported asset types.
contentType
enum (
ContentType
)
Asset content type. If not specified, no content but the asset name will be returned.
pageSize
integer
The maximum number of assets to be returned in a single response. Default is 100, minimum is 1, and maximum is 1000.
pageToken
string
The next_page_token
returned from the previous ListAssetsResponse
, or unspecified for the first ListAssetsRequest
. It is a continuation of a prior ListAssets
call, and the API should return the next page of assets.
relationshipTypes[]
string
A list of relationship types to output, for example: INSTANCE_TO_INSTANCEGROUP
. This field should only be specified if content_type=RELATIONSHIP. * If specified: it snapshots specified relationships. It returns an error if any of the [relationship_types] doesn't belong to the supported relationship types of the [asset_types] or if any of the [asset_types] doesn't belong to the source types of the [relationship_types]. * Otherwise: it snapshots the supported relationships for all [asset_types] or returns an error if any of the [asset_types] has no relationship support. An unspecified asset types field means all supported asset_types. See Introduction to Cloud Asset Inventory
for all supported asset types and relationship types.
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
Output Schema
ListAssets response.
ListAssetsResponse
| JSON representation |
|---|
{
"readTime"
:
string
,
"assets"
:
[
{
object (
|
| Fields | |
|---|---|
readTime
|
Time the snapshot was taken. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
assets[]
|
Assets. |
nextPageToken
|
Token to retrieve the next page of results. It expires 72 hours after the page token for the first page is generated. Set to empty if there are no remaining results. |
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
Asset
| JSON representation |
|---|
{ "updateTime" : string , "name" : string , "assetType" : string , "resource" : { object ( |
updateTime
string (
Timestamp
format)
The last update timestamp of an asset. update_time is updated when create/update/delete operation is performed.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
name
string
The full name of the asset. Example: //compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1
See Resource names for more information.
assetType
string
The type of the asset. Example: compute.googleapis.com/Disk
See Supported asset types for more information.
resource
object (
Resource
)
A representation of the resource.
iamPolicy
object (
Policy
)
A representation of the IAM policy set on a Google Cloud resource. There can be a maximum of one IAM policy set on any given resource. In addition, IAM policies inherit their granted access scope from any policies set on parent resources in the resource hierarchy. Therefore, the effectively policy is the union of both the policy set on this resource and each policy set on all of the resource's ancestry resource levels in the hierarchy. See this topic for more information.
orgPolicy[]
object (
Policy
)
A representation of an organization policy . There can be more than one organization policy with different constraints set on a given resource.
osInventory
object (
Inventory
)
A representation of runtime OS Inventory information. See this topic for more information.
relatedAssets
(deprecated)
object (
RelatedAssets
)
DEPRECATED. This field only presents for the purpose of backward-compatibility. The server will never generate responses with this field. The related assets of the asset of one relationship type. One asset only represents one type of relationship.
relatedAsset
object (
RelatedAsset
)
One related asset of the current asset.
ancestors[]
string
The ancestry path of an asset in Google Cloud resource hierarchy , represented as a list of relative resource names. An ancestry path starts with the closest ancestor in the hierarchy and ends at root. If the asset is a project, folder, or organization, the ancestry path starts from the asset itself.
Example: ["projects/123456789", "folders/5432", "organizations/1234"]
assetExceptions[]
object (
AssetException
)
The exceptions of a resource.
access_context_policy
. A representation of an access policy
. access_context_policy
can be only one of the following:accessPolicy
object (
AccessPolicy
)
Also refer to the access policy user guide .
accessLevel
object (
AccessLevel
)
Also refer to the access level user guide .
servicePerimeter
object (
ServicePerimeter
)
Also refer to the service perimeter user guide .
Resource
| JSON representation |
|---|
{ "version" : string , "discoveryDocumentUri" : string , "discoveryName" : string , "resourceUrl" : string , "parent" : string , "data" : { object } , "location" : string } |
| Fields | |
|---|---|
version
|
The API version. Example: |
discoveryDocumentUri
|
The URL of the discovery document containing the resource's JSON schema. Example: This value is unspecified for resources that do not have an API based on a discovery document, such as Cloud Bigtable. |
discoveryName
|
The JSON schema name listed in the discovery document. Example: This value is unspecified for resources that do not have an API based on a discovery document, such as Cloud Bigtable. |
resourceUrl
|
The REST URL for accessing the resource. An HTTP This value is unspecified for resources without a REST API. |
parent
|
The full name of the immediate parent of this resource. See Resource Names for more information. For Google Cloud assets, this value is the parent resource defined in the IAM policy hierarchy
. Example: |
data
|
The content of the resource, in which some sensitive fields are removed and may not be present. |
location
|
The location of the resource in Google Cloud, such as its zone and region. For more information, see https://cloud.google.com/about/locations/ . |
Struct
| JSON representation |
|---|
{ "fields" : { string : value , ... } } |
| Fields | |
|---|---|
fields
|
Unordered map of dynamically typed values. An object containing a list of |
FieldsEntry
| JSON representation |
|---|
{ "key" : string , "value" : value } |
| Fields | |
|---|---|
key
|
|
value
|
|
Value
| JSON representation |
|---|
{ // Union field |
kind
. The kind of value. kind
can be only one of the following:nullValue
null
Represents a JSON null
.
numberValue
number
Represents a JSON number. Must not be NaN
, Infinity
or -Infinity
, since those are not supported in JSON. This also cannot represent large Int64 values, since JSON format generally does not support them in its number type.
stringValue
string
Represents a JSON string.
boolValue
boolean
Represents a JSON boolean ( true
or false
literal in JSON).
structValue
object (
Struct
format)
Represents a JSON object.
listValue
array (
ListValue
format)
Represents a JSON array.
ListValue
| JSON representation |
|---|
{ "values" : [ value ] } |
| Fields | |
|---|---|
values[]
|
Repeated field of dynamically typed values. |
Policy
| JSON representation |
|---|
{ "version" : integer , "bindings" : [ { object ( |
version
integer
Specifies the format of the policy.
Valid values are 0
, 1
, and 3
. Requests that specify an invalid value are rejected.
Any operation that affects conditional role bindings must specify version 3
. This requirement applies to the following operations:
- Getting a policy that includes a conditional role binding
- Adding a conditional role binding to a policy
- Changing a conditional role binding in a policy
- Removing any role binding, with or without a condition, from a policy that includes conditions
Important:If you use IAM Conditions, you must include the etag
field whenever you call setIamPolicy
. If you omit this field, then IAM allows you to overwrite a version 3
policy with a version 1
policy, and all of the conditions in the version 3
policy are lost.
If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset.
To learn which resources support conditions in their IAM policies, see the IAM documentation .
bindings[]
object (
Binding
)
Associates a list of members
, or principals, with a role
. Optionally, may specify a condition
that determines how and when the bindings
are applied. Each of the bindings
must contain at least one principal.
The bindings
in a Policy
can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the bindings
grant 50 different roles to user:alice@example.com
, and not to any other principal, then you can add another 1,450 principals to the bindings
in the Policy
.
auditConfigs[]
object (
AuditConfig
)
Specifies cloud audit logging configuration for this policy.
etag
string ( bytes
format)
etag
is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the etag
in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An etag
is returned in the response to getIamPolicy
, and systems are expected to put that etag in the request to setIamPolicy
to ensure that their change will be applied to the same version of the policy.
Important:If you use IAM Conditions, you must include the etag
field whenever you call setIamPolicy
. If you omit this field, then IAM allows you to overwrite a version 3
policy with a version 1
policy, and all of the conditions in the version 3
policy are lost.
A base64-encoded string.
Binding
| JSON representation |
|---|
{
"role"
:
string
,
"members"
:
[
string
]
,
"condition"
:
{
object (
|
role
string
Role that is assigned to the list of members
, or principals. For example, roles/viewer
, roles/editor
, or roles/owner
.
For an overview of the IAM roles and permissions, see the IAM documentation . For a list of the available pre-defined roles, see here .
members[]
string
Specifies the principals requesting access for a Google Cloud resource. members
can have the following values:
-
allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. -
allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. -
user:{emailid}: An email address that represents a specific Google account. For example,alice@example.com.
-
serviceAccount:{emailid}: An email address that represents a Google service account. For example,my-other-app@appspot.gserviceaccount.com. -
serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account . For example,my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. -
group:{emailid}: An email address that represents a Google group. For example,admins@example.com.
-
domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example,google.comorexample.com.
-
principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workforce identity pool. -
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: All workforce identities in a group. -
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All workforce identities with a specific attribute value. -
principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: All identities in a workforce identity pool. -
principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workload identity pool. -
principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: A workload identity pool group. -
principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All identities in a workload identity pool with a certain attribute. -
principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: All identities in a workload identity pool. -
deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example,alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts touser:{emailid}and the recovered user retains the role in the binding. -
deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example,my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts toserviceAccount:{emailid}and the undeleted service account retains the role in the binding. -
deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example,admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts togroup:{emailid}and the recovered group retains the role in the binding. -
deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Deleted single identity in a workforce identity pool. For example,deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.
condition
object (
Expr
)
The condition that is associated with this binding.
If the condition evaluates to true
, then this binding applies to the current request.
If the condition evaluates to false
, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.
To learn which resources support conditions in their IAM policies, see the IAM documentation .
Expr
| JSON representation |
|---|
{ "expression" : string , "title" : string , "description" : string , "location" : string } |
| Fields | |
|---|---|
expression
|
Textual representation of an expression in Common Expression Language syntax. |
title
|
Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression. |
description
|
Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. |
location
|
Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file. |
AuditConfig
| JSON representation |
|---|
{
"service"
:
string
,
"auditLogConfigs"
:
[
{
object (
|
| Fields | |
|---|---|
service
|
Specifies a service that will be enabled for audit logging. For example, |
auditLogConfigs[]
|
The configuration for logging of each type of permission. |
AuditLogConfig
| JSON representation |
|---|
{
"logType"
:
enum (
|
| Fields | |
|---|---|
logType
|
The log type that this config enables. |
exemptedMembers[]
|
Specifies the identities that do not cause logging for this type of permission. Follows the same format of |
Policy
| JSON representation |
|---|
{ "version" : integer , "constraint" : string , "etag" : string , "updateTime" : string , // Union field |
version
integer
Version of the Policy
. Default version is 0;
constraint
string
The name of the Constraint
the Policy
is configuring, for example, constraints/serviceuser.services
.
A list of available constraints is available.
Immutable after creation.
etag
string ( bytes
format)
An opaque tag indicating the current version of the Policy
, used for concurrency control.
When the Policy
is returned from either a GetPolicy
or a ListOrgPolicy
request, this etag
indicates the version of the current Policy
to use when executing a read-modify-write loop.
When the Policy
is returned from a GetEffectivePolicy
request, the etag
will be unset.
When the Policy
is used in a SetOrgPolicy
method, use the etag
value that was returned from a GetOrgPolicy
request as part of a read-modify-write loop for concurrency control. Not setting the etag
in a SetOrgPolicy
request will result in an unconditional write of the Policy
.
A base64-encoded string.
updateTime
string (
Timestamp
format)
The time stamp the Policy
was previously updated. This is set by the server, not specified by the caller, and represents the last time a call to SetOrgPolicy
was made for that Policy
. Any value set by the client will be ignored.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
Union field policy_type
. The field to populate is based on the constraint_type
value in the Constraint
. list_constraint
=> list_policy
boolean_constraint
=> boolean_policy
A restore_default
message may be used with any Constraint
type.
Providing a *_policy that is incompatible with the constraint_type
will result in an invalid_argument
error.
Attempting to set a Policy
with a policy_type
not set will result in an invalid_argument
error. policy_type
can be only one of the following:
listPolicy
object (
ListPolicy
)
List of values either allowed or disallowed.
booleanPolicy
object (
BooleanPolicy
)
For boolean Constraints
, whether to enforce the Constraint
or not.
restoreDefault
object (
RestoreDefault
)
Restores the default behavior of the constraint; independent of Constraint
type.
ListPolicy
| JSON representation |
|---|
{
"allowedValues"
:
[
string
]
,
"deniedValues"
:
[
string
]
,
"allValues"
:
enum (
|
| Fields | |
|---|---|
allowedValues[]
|
List of values allowed at this resource. Can only be set if |
deniedValues[]
|
List of values denied at this resource. Can only be set if |
allValues
|
The policy all_values state. |
suggestedValue
|
Optional. The Google Cloud Console will try to default to a configuration that matches the value specified in this |
inheritFromParent
|
Determines the inheritance behavior for this By default, a Setting For example, suppose you have a The following examples demonstrate different possible layerings for Example 1 (no inherited values): Example 2 (inherited values): Example 3 (inheriting both allowed and denied values): Example 4 (RestoreDefault): Example 5 (no policy inherits parent policy): Example 6 (ListConstraint allowing all): Example 7 (ListConstraint allowing none): Example 10 (allowed and denied subtrees of Resource Manager hierarchy): Given the following resource hierarchy O1->{F1, F2}; F1->{P1}; F2->{P2, P3}, |
BooleanPolicy
| JSON representation |
|---|
{ "enforced" : boolean } |
| Fields | |
|---|---|
enforced
|
If Suppose you have a The following examples demonstrate the different possible layerings: Example 1 (nearest Example 2 (enforcement gets replaced): Example 3 (RestoreDefault): |
AccessPolicy
| JSON representation |
|---|
{ "name" : string , "parent" : string , "title" : string , "scopes" : [ string ] , "etag" : string } |
name
string
Output only. Identifier. Resource name of the AccessPolicy
. Format: accessPolicies/{access_policy}
parent
string
Required. The parent of this AccessPolicy
in the Cloud Resource Hierarchy. Currently immutable once created. Format: organizations/{organization_id}
title
string
Required. Human readable title. Does not affect behavior.
scopes[]
string
The scopes of the AccessPolicy
. Scopes define which resources a policy can restrict and where its resources can be referenced. For example, policy A with scopes=["folders/123"]
has the following behavior:
-
ServicePerimetercan only restrict projects withinfolders/123. -
ServicePerimeterwithin policy A can only reference access levels defined within policy A. - Only one policy can include a given scope; thus, attempting to create a second policy which includes
folders/123will result in an error.
If no scopes are provided, then any resource within the organization can be restricted. Scopes cannot be modified after a policy is created. Policies can only have a single scope. Format: list of folders/{folder_number}
or projects/{project_number}
etag
string
Output only. An opaque identifier for the current version of the AccessPolicy
. This will always be a strongly validated etag, meaning that two Access Policies will be identical if and only if their etags are identical. Clients should not expect this to be in any specific format.
AccessLevel
| JSON representation |
|---|
{ "name" : string , "title" : string , "description" : string , // Union field |
name
string
Identifier. Resource name for the AccessLevel
. Format: accessPolicies/{access_policy}/accessLevels/{access_level}
.
The access_level
component must begin with a letter, followed by alphanumeric characters or _
. Its maximum length is 50 characters.
After you create an AccessLevel
, you cannot change its name
.
title
string
Human readable title. Must be unique within the Policy.
description
string
Description of the AccessLevel
and its use. Does not affect behavior.
level
. Required. Describes the necessary conditions for the level to apply. level
can be only one of the following:basic
object (
BasicLevel
)
A BasicLevel
composed of Conditions
.
custom
object (
CustomLevel
)
A CustomLevel
written in the Common Expression Language.
BasicLevel
| JSON representation |
|---|
{ "conditions" : [ { object ( |
| Fields | |
|---|---|
conditions[]
|
Required. A list of requirements for the |
combiningFunction
|
How the |
Condition
| JSON representation |
|---|
{ "ipSubnetworks" : [ string ] , "devicePolicy" : { object ( |
| Fields | |
|---|---|
ipSubnetworks[]
|
CIDR block IP subnetwork specification. May be IPv4 or IPv6. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. Similarly, for IPv6, "2001:db8::/32" is accepted whereas "2001:db8::1/32" is not. The originating IP of a request must be in one of the listed subnets in order for this Condition to be true. If empty, all IP addresses are allowed. |
devicePolicy
|
Device specific restrictions, all restrictions must hold for the Condition to be true. If not specified, all devices are allowed. |
requiredAccessLevels[]
|
A list of other access levels defined in the same |
negate
|
Whether to negate the Condition. If true, the Condition becomes a NAND over its non-empty fields. Any non-empty field criteria evaluating to false will result in the Condition to be satisfied. Defaults to false. |
members[]
|
The request must be made by one of the provided user or service accounts. Groups are not supported. Syntax: |
regions[]
|
The request must originate from one of the provided countries/regions. Must be valid ISO 3166-1 alpha-2 codes. |
vpcNetworkSources[]
|
The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with |
DevicePolicy
| JSON representation |
|---|
{ "requireScreenlock" : boolean , "allowedEncryptionStatuses" : [ enum ( |
| Fields | |
|---|---|
requireScreenlock
|
Whether or not screenlock is required for the DevicePolicy to be true. Defaults to |
allowedEncryptionStatuses[]
|
Allowed encryptions statuses, an empty list allows all statuses. |
osConstraints[]
|
Allowed OS versions, an empty list allows all types and all versions. |
allowedDeviceManagementLevels[]
|
Allowed device management levels, an empty list allows all management levels. |
requireAdminApproval
|
Whether the device needs to be approved by the customer admin. |
requireCorpOwned
|
Whether the device needs to be corp owned. |
OsConstraint
| JSON representation |
|---|
{
"osType"
:
enum (
|
| Fields | |
|---|---|
osType
|
Required. The allowed OS type. |
minimumVersion
|
The minimum allowed OS version. If not set, any version of this OS satisfies the constraint. Format: |
requireVerifiedChromeOs
|
Only allows requests from devices with a verified Chrome OS. Verifications includes requirements that the device is enterprise-managed, conformant to domain policies, and the caller has permission to call the API targeted by the request. |
VpcNetworkSource
| JSON representation |
|---|
{ // Union field |
Union field kind
.
kind
can be only one of the following:
vpcSubnetwork
object (
VpcSubNetwork
)
Sub-segment ranges of a VPC network.
VpcSubNetwork
| JSON representation |
|---|
{ "network" : string , "vpcIpSubnetworks" : [ string ] } |
| Fields | |
|---|---|
network
|
Required. Network name. If the network is not part of the organization, the |
vpcIpSubnetworks[]
|
CIDR block IP subnetwork specification. The IP address must be an IPv4 address and can be a public or private IP address. Note that for a CIDR IP address block, the specified IP address portion must be properly truncated (i.e. all the host bits must be zero) or the input is considered malformed. For example, "192.0.2.0/24" is accepted but "192.0.2.1/24" is not. If empty, all IP addresses are allowed. |
CustomLevel
| JSON representation |
|---|
{
"expr"
:
{
object (
|
| Fields | |
|---|---|
expr
|
Required. A Cloud CEL expression evaluating to a boolean. |
ServicePerimeter
| JSON representation |
|---|
{ "name" : string , "title" : string , "description" : string , "perimeterType" : enum ( |
| Fields | |
|---|---|
name
|
Identifier. Resource name for the The After you create a |
title
|
Human readable title. Must be unique within the Policy. |
description
|
Description of the |
perimeterType
|
Perimeter type indicator. A single project or VPC network is allowed to be a member of single regular perimeter, but multiple service perimeter bridges. A project cannot be a included in a perimeter bridge without being included in regular perimeter. For perimeter bridges, the restricted service list as well as access level lists must be empty. |
status
|
Current ServicePerimeter configuration. Specifies sets of resources, restricted services and access levels that determine perimeter content and boundaries. |
spec
|
Proposed (or dry run) ServicePerimeter configuration. This configuration allows to specify and test ServicePerimeter configuration without enforcing actual access restrictions. Only allowed to be set when the "use_explicit_dry_run_spec" flag is set. |
useExplicitDryRunSpec
|
Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists for all Service Perimeters, and that spec is identical to the status for those Service Perimeters. When this flag is set, it inhibits the generation of the implicit spec, thereby allowing the user to explicitly provide a configuration ("spec") to use in a dry-run version of the Service Perimeter. This allows the user to test changes to the enforced config ("status") without actually enforcing them. This testing is done through analyzing the differences between currently enforced and suggested restrictions. use_explicit_dry_run_spec must bet set to True if any of the fields in the spec are set to non-default values. |
etag
|
Optional. An opaque identifier for the current version of the |
ServicePerimeterConfig
| JSON representation |
|---|
{ "resources" : [ string ] , "accessLevels" : [ string ] , "restrictedServices" : [ string ] , "vpcAccessibleServices" : { object ( |
| Fields | |
|---|---|
resources[]
|
A list of Google Cloud resources that are inside of the service perimeter. Currently only projects and VPCs are allowed. Project format: |
accessLevels[]
|
A list of |
restrictedServices[]
|
Google Cloud services that are subject to the Service Perimeter restrictions. For example, if |
vpcAccessibleServices
|
Configuration for APIs allowed within Perimeter. |
ingressPolicies[]
|
List of |
egressPolicies[]
|
List of |
VpcAccessibleServices
| JSON representation |
|---|
{ "enableRestriction" : boolean , "allowedServices" : [ string ] } |
| Fields | |
|---|---|
enableRestriction
|
Whether to restrict API calls within the Service Perimeter to the list of APIs specified in 'allowed_services'. |
allowedServices[]
|
The list of APIs usable within the Service Perimeter. Must be empty unless 'enable_restriction' is True. You can specify a list of individual services, as well as include the 'RESTRICTED-SERVICES' value, which automatically includes all of the services protected by the perimeter. |
IngressPolicy
| JSON representation |
|---|
{ "ingressFrom" : { object ( |
| Fields | |
|---|---|
ingressFrom
|
Defines the conditions on the source of a request causing this |
ingressTo
|
Defines the conditions on the |
title
|
Optional. Human-readable title for the ingress rule. The title must be unique within the perimeter and can not exceed 100 characters. Within the access policy, the combined length of all rule titles must not exceed 240,000 characters. |
IngressFrom
| JSON representation |
|---|
{ "sources" : [ { object ( |
| Fields | |
|---|---|
sources[]
|
Sources that this |
identities[]
|
A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities . |
identityType
|
Specifies the type of identities that are allowed access from outside the perimeter. If left unspecified, then members of |
IngressSource
| JSON representation |
|---|
{ // Union field |
source
. Allowed ingress source. It can be one of AccessLevel
or Google Cloud resource. source
can be only one of the following:accessLevel
string
An AccessLevel
resource name that allow resources within the ServicePerimeters
to be accessed from the internet. AccessLevels
listed must be in the same policy as this ServicePerimeter
. Referencing a nonexistent AccessLevel
will cause an error. If no AccessLevel
names are listed, resources within the perimeter can only be accessed via Google Cloud calls with request origins within the perimeter. Example: accessPolicies/MY_POLICY/accessLevels/MY_LEVEL
. If a single *
is specified for access_level
, then all IngressSources
will be allowed.
resource
string
A Google Cloud resource that is allowed to ingress the perimeter. Requests from these resources will be allowed to access perimeter data. Currently only projects and VPCs are allowed. Project format: projects/{project_number}
VPC network format: //compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}
. The project may be in any Google Cloud organization, not just the organization that the perimeter is defined in. *
is not allowed, the case of allowing all Google Cloud resources only is not supported.
IngressTo
| JSON representation |
|---|
{
"operations"
:
[
{
object (
|
| Fields | |
|---|---|
operations[]
|
A list of |
resources[]
|
A list of resources, currently only projects in the form |
roles[]
|
IAM roles that represent the set of operations that the sources specified in the corresponding |
ApiOperation
| JSON representation |
|---|
{
"serviceName"
:
string
,
"methodSelectors"
:
[
{
object (
|
| Fields | |
|---|---|
serviceName
|
The name of the API whose methods or permissions the |
methodSelectors[]
|
API methods or permissions to allow. Method or permission must belong to the service specified by |
MethodSelector
| JSON representation |
|---|
{ // Union field |
kind
. The API method name or Cloud IAM permission name to allow. kind
can be only one of the following:method
string
A valid method name for the corresponding service_name
in ApiOperation
. If *
is used as the value for the method
, then ALL methods and permissions are allowed.
permission
string
A valid Cloud IAM permission for the corresponding service_name
in ApiOperation
.
EgressPolicy
| JSON representation |
|---|
{ "egressFrom" : { object ( |
| Fields | |
|---|---|
egressFrom
|
Defines conditions on the source of a request causing this |
egressTo
|
Defines the conditions on the |
title
|
Optional. Human-readable title for the egress rule. The title must be unique within the perimeter and can not exceed 100 characters. Within the access policy, the combined length of all rule titles must not exceed 240,000 characters. |
EgressFrom
| JSON representation |
|---|
{ "identities" : [ string ] , "identityType" : enum ( |
| Fields | |
|---|---|
identities[]
|
A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, third-party identity, or agent identity. For the list of supported identity types, see https://docs.cloud.google.com/vpc-service-controls/docs/supported-identities . |
identityType
|
Specifies the type of identities that are allowed access to outside the perimeter. If left unspecified, then members of |
sources[]
|
Sources that this [EgressPolicy]
[google.identity.accesscontextmanager.v1alpha.ServicePerimeterConfig.EgressPolicy] authorizes access from. If this field is not empty, then |
sourceRestriction
|
Whether to enforce traffic restrictions based on |
EgressSource
| JSON representation |
|---|
{ // Union field |
source
. Allowed egress source. source
can be only one of the following:accessLevel
string
An [AccessLevel]
[google.identity.accesscontextmanager.v1alpha.AccessLevel] resource name that allows protected resources inside the [ServicePerimeters]
[google.identity.accesscontextmanager.v1alpha.ServicePerimeter] to access outside the [ServicePerimeter]
[google.identity.accesscontextmanager.v1alpha.ServicePerimeter] boundaries. [AccessLevels]
[google.identity.accesscontextmanager.v1alpha.AccessLevel] listed must be in the same policy as this [ServicePerimeter]
[google.identity.accesscontextmanager.v1alpha.ServicePerimeter]. Referencing a nonexistent [AccessLevel]
[google.identity.accesscontextmanager.v1alpha.AccessLevel] will cause an error. If an [AccessLevel]
[google.identity.accesscontextmanager.v1alpha.AccessLevel] name is not specified, only resources within the perimeter can be accessed through Google Cloud calls with request origins within the perimeter. Example: accessPolicies/MY_POLICY/accessLevels/MY_LEVEL
. If a single *
is specified for access_level
, then all [EgressSources]
[google.identity.accesscontextmanager.v1alpha.ServicePerimeterConfig.EgressSource] will be allowed.
resource
string
A Google Cloud resource from the service perimeter that you want to allow to access data outside the perimeter. This field supports only projects. The project format is projects/{project_number}
. You can't use *
in this field to allow all Google Cloud resources.
EgressTo
| JSON representation |
|---|
{
"resources"
:
[
string
]
,
"operations"
:
[
{
object (
|
| Fields | |
|---|---|
resources[]
|
A list of resources, currently only projects in the form |
operations[]
|
A list of |
externalResources[]
|
A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME . A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed. |
roles[]
|
IAM roles that represent the set of operations that the sources specified in the corresponding |
Inventory
| JSON representation |
|---|
{ "name" : string , "osInfo" : { object ( |
| Fields | |
|---|---|
name
|
Output only. The Format: |
osInfo
|
Base level operating system information for the VM. |
items
|
Inventory items related to the VM keyed by an opaque unique identifier for each inventory item. The identifier is unique to each distinct and addressable inventory item and will change, when there is a new package version. An object containing a list of |
updateTime
|
Output only. Timestamp of the last reported inventory for the VM. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
OsInfo
| JSON representation |
|---|
{ "hostname" : string , "longName" : string , "shortName" : string , "version" : string , "architecture" : string , "kernelVersion" : string , "kernelRelease" : string , "osconfigAgentVersion" : string } |
| Fields | |
|---|---|
hostname
|
The VM hostname. |
longName
|
The operating system long name. For example 'Debian GNU/Linux 9' or 'Microsoft Window Server 2019 Datacenter'. |
shortName
|
The operating system short name. For example, 'windows' or 'debian'. |
version
|
The version of the operating system. |
architecture
|
The system architecture of the operating system. |
kernelVersion
|
The kernel version of the operating system. |
kernelRelease
|
The kernel release of the operating system. |
osconfigAgentVersion
|
The current version of the OS Config agent running on the VM. |
ItemsEntry
| JSON representation |
|---|
{
"key"
:
string
,
"value"
:
{
object (
|
| Fields | |
|---|---|
key
|
|
value
|
|
Item
| JSON representation |
|---|
{ "id" : string , "originType" : enum ( |
id
string
Identifier for this item, unique across items for this VM.
originType
enum (
OriginType
)
The origin of this inventory item.
createTime
string (
Timestamp
format)
When this inventory item was first detected.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
updateTime
string (
Timestamp
format)
When this inventory item was last modified.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
type
enum (
Type
)
The specific type of inventory, correlating to its specific details.
details
. Specific details of this inventory item based on its type. details
can be only one of the following:installedPackage
object (
SoftwarePackage
)
Software package present on the VM instance.
availablePackage
object (
SoftwarePackage
)
Software package available to be installed on the VM instance.
SoftwarePackage
| JSON representation |
|---|
{ // Union field |
details
. Information about the different types of software packages. details
can be only one of the following:yumPackage
object (
VersionedPackage
)
Yum package info. For details about the yum package manager, see https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/ch-yum .
aptPackage
object (
VersionedPackage
)
Details of an APT package. For details about the apt package manager, see https://wiki.debian.org/Apt .
zypperPackage
object (
VersionedPackage
)
Details of a Zypper package. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual .
googetPackage
object (
VersionedPackage
)
Details of a Googet package. For details about the googet package manager, see https://github.com/google/googet .
zypperPatch
object (
ZypperPatch
)
Details of a Zypper patch. For details about the Zypper package manager, see https://en.opensuse.org/SDB:Zypper_manual .
wuaPackage
object (
WindowsUpdatePackage
)
Details of a Windows Update package. See https://docs.microsoft.com/en-us/windows/win32/api/_wua/ for information about Windows Update.
qfePackage
object (
WindowsQuickFixEngineeringPackage
)
Details of a Windows Quick Fix engineering package. See https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-quickfixengineering for info in Windows Quick Fix Engineering.
cosPackage
object (
VersionedPackage
)
Details of a COS package.
windowsApplication
object (
WindowsApplication
)
Details of Windows Application.
VersionedPackage
| JSON representation |
|---|
{ "packageName" : string , "architecture" : string , "version" : string } |
| Fields | |
|---|---|
packageName
|
The name of the package. |
architecture
|
The system architecture this package is intended for. |
version
|
The version of the package. |
ZypperPatch
| JSON representation |
|---|
{ "patchName" : string , "category" : string , "severity" : string , "summary" : string } |
| Fields | |
|---|---|
patchName
|
The name of the patch. |
category
|
The category of the patch. |
severity
|
The severity specified for this patch |
summary
|
Any summary information provided about this patch. |
WindowsUpdatePackage
| JSON representation |
|---|
{
"title"
:
string
,
"description"
:
string
,
"categories"
:
[
{
object (
|
| Fields | |
|---|---|
title
|
The localized title of the update package. |
description
|
The localized description of the update package. |
categories[]
|
The categories that are associated with this update package. |
kbArticleIds[]
|
A collection of Microsoft Knowledge Base article IDs that are associated with the update package. |
supportUrl
|
A hyperlink to the language-specific support information for the update. |
moreInfoUrls[]
|
A collection of URLs that provide more information about the update package. |
updateId
|
Gets the identifier of an update package. Stays the same across revisions. |
revisionNumber
|
The revision number of this update package. |
lastDeploymentChangeTime
|
The last published date of the update, in (UTC) date and time. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
WindowsUpdateCategory
| JSON representation |
|---|
{ "id" : string , "name" : string } |
| Fields | |
|---|---|
id
|
The identifier of the windows update category. |
name
|
The name of the windows update category. |
WindowsQuickFixEngineeringPackage
| JSON representation |
|---|
{ "caption" : string , "description" : string , "hotFixId" : string , "installTime" : string } |
| Fields | |
|---|---|
caption
|
A short textual description of the QFE update. |
description
|
A textual description of the QFE update. |
hotFixId
|
Unique identifier associated with a particular QFE update. |
installTime
|
Date that the QFE update was installed. Mapped from installed_on field. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
WindowsApplication
| JSON representation |
|---|
{
"displayName"
:
string
,
"displayVersion"
:
string
,
"publisher"
:
string
,
"installDate"
:
{
object (
|
| Fields | |
|---|---|
displayName
|
The name of the application or product. |
displayVersion
|
The version of the product or application in string format. |
publisher
|
The name of the manufacturer for the product or application. |
installDate
|
The last time this product received service. The value of this property is replaced each time a patch is applied or removed from the product or the command-line option is used to repair the product. |
helpLink
|
The internet address for technical support. |
Date
| JSON representation |
|---|
{ "year" : integer , "month" : integer , "day" : integer } |
| Fields | |
|---|---|
year
|
Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year. |
month
|
Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day. |
day
|
Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant. |
| JSON representation |
|---|
{ "relationshipAttributes" : { object ( |
| Fields | |
|---|---|
relationshipAttributes
|
The detailed relationship attributes. |
assets[]
|
The peer resources of the relationship. |
RelationshipAttributes
| JSON representation |
|---|
{ "type" : string , "sourceResourceType" : string , "targetResourceType" : string , "action" : string } |
| Fields | |
|---|---|
type
|
The unique identifier of the relationship type. Example: |
sourceResourceType
|
The source asset type. Example: |
targetResourceType
|
The target asset type. Example: |
action
|
The detail of the relationship, e.g. |
| JSON representation |
|---|
{ "asset" : string , "assetType" : string , "ancestors" : [ string ] , "relationshipType" : string } |
| Fields | |
|---|---|
asset
|
The full name of the asset. Example: See Resource names for more information. |
assetType
|
The type of the asset. Example: See Supported asset types for more information. |
ancestors[]
|
The ancestors of an asset in Google Cloud resource hierarchy , represented as a list of relative resource names. An ancestry path starts with the closest ancestor in the hierarchy and ends at root. Example: |
relationshipType
|
The unique identifier of the relationship type. Example: |
AssetException
| JSON representation |
|---|
{
"exceptionType"
:
enum (
|
| Fields | |
|---|---|
exceptionType
|
The type of exception. |
details
|
The details of the exception. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

