As of January 1, 2020 this library no longer supports Python 2 on the latest released version.
Library versions released prior to that date will continue to be available. For more information please
visit Python 2 support on Google Cloud.
Source code for google.cloud.asset_v1p5beta1.types.assets
# -*- coding: utf-8 -*-
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import proto # type: ignore
from google.cloud.orgpolicy.v1 import orgpolicy_pb2 # type: ignore
from google.iam.v1 import policy_pb2 # type: ignore
from google.identity.accesscontextmanager.v1 import access_level_pb2 # type: ignore
from google.identity.accesscontextmanager.v1 import access_policy_pb2 # type: ignore
from google.identity.accesscontextmanager.v1 import service_perimeter_pb2 # type: ignore
from google.protobuf import struct_pb2 # type: ignore
__protobuf__ = proto.module(
package="google.cloud.asset.v1p5beta1", manifest={"Asset", "Resource",},
)
[docs]class Asset(proto.Message):
r"""Cloud asset. This includes all Google Cloud Platform
resources, Cloud IAM policies, and other non-GCP assets.
Attributes:
name (str):
The full name of the asset. For example:
``//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1``.
See `Resource
Names <https://cloud.google.com/apis/design/resource_names#full_resource_name>`__
for more information.
asset_type (str):
Type of the asset. Example:
"compute.googleapis.com/Disk".
resource (google.cloud.asset_v1p5beta1.types.Resource):
Representation of the resource.
iam_policy (google.iam.v1.policy_pb2.Policy):
Representation of the actual Cloud IAM policy
set on a cloud resource. For each resource,
there must be at most one Cloud IAM policy set
on it.
org_policy (Sequence[google.cloud.orgpolicy.v1.orgpolicy_pb2.Policy]):
Representation of the Cloud Organization
Policy set on an asset. For each asset, there
could be multiple Organization policies with
different constraints.
access_policy (google.identity.accesscontextmanager.v1.access_policy_pb2.AccessPolicy):
access_level (google.identity.accesscontextmanager.v1.access_level_pb2.AccessLevel):
service_perimeter (google.identity.accesscontextmanager.v1.service_perimeter_pb2.ServicePerimeter):
ancestors (Sequence[str]):
Asset's ancestry path in Cloud Resource Manager (CRM)
hierarchy, represented as a list of relative resource names.
Ancestry path starts with the closest CRM ancestor and ends
at root. If the asset is a CRM project/folder/organization,
this starts from the asset itself.
Example: ["projects/123456789", "folders/5432",
"organizations/1234"]
"""
name = proto.Field(proto.STRING, number=1,)
asset_type = proto.Field(proto.STRING, number=2,)
resource = proto.Field(proto.MESSAGE, number=3, message="Resource",)
iam_policy = proto.Field(proto.MESSAGE, number=4, message=policy_pb2.Policy,)
org_policy = proto.RepeatedField(
proto.MESSAGE, number=6, message=orgpolicy_pb2.Policy,
)
access_policy = proto.Field(
proto.MESSAGE,
number=7,
oneof="access_context_policy",
message=access_policy_pb2.AccessPolicy,
)
access_level = proto.Field(
proto.MESSAGE,
number=8,
oneof="access_context_policy",
message=access_level_pb2.AccessLevel,
)
service_perimeter = proto.Field(
proto.MESSAGE,
number=9,
oneof="access_context_policy",
message=service_perimeter_pb2.ServicePerimeter,
)
ancestors = proto.RepeatedField(proto.STRING, number=10,)
[docs]class Resource(proto.Message):
r"""Representation of a cloud resource.
Attributes:
version (str):
The API version. Example: "v1".
discovery_document_uri (str):
The URL of the discovery document containing the resource's
JSON schema. For example:
``"https://www.googleapis.com/discovery/v1/apis/compute/v1/rest"``.
It will be left unspecified for resources without a
discovery-based API, such as Cloud Bigtable.
discovery_name (str):
The JSON schema name listed in the discovery
document. Example: "Project". It will be left
unspecified for resources (such as Cloud
Bigtable) without a discovery-based API.
resource_url (str):
The REST URL for accessing the resource. An HTTP GET
operation using this URL returns the resource itself.
Example:
``https://cloudresourcemanager.googleapis.com/v1/projects/my-project-123``.
It will be left unspecified for resources without a REST
API.
parent (str):
The full name of the immediate parent of this resource. See
`Resource
Names <https://cloud.google.com/apis/design/resource_names#full_resource_name>`__
for more information.
For GCP assets, it is the parent resource defined in the
`Cloud IAM policy
hierarchy <https://cloud.google.com/iam/docs/overview#policy_hierarchy>`__.
For example:
``"//cloudresourcemanager.googleapis.com/projects/my_project_123"``.
For third-party assets, it is up to the users to define.
data (google.protobuf.struct_pb2.Struct):
The content of the resource, in which some
sensitive fields are scrubbed away and may not
be present.
"""
version = proto.Field(proto.STRING, number=1,)
discovery_document_uri = proto.Field(proto.STRING, number=2,)
discovery_name = proto.Field(proto.STRING, number=3,)
resource_url = proto.Field(proto.STRING, number=4,)
parent = proto.Field(proto.STRING, number=5,)
data = proto.Field(proto.MESSAGE, number=6, message=struct_pb2.Struct,)
__all__ = tuple(sorted(__protobuf__.manifest))