getRelatedResourcesList() {
+ if (relatedResourcesBuilder_ == null) {
+ return java.util.Collections.unmodifiableList(relatedResources_);
+ } else {
+ return relatedResourcesBuilder_.getMessageList();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public int getRelatedResourcesCount() {
+ if (relatedResourcesBuilder_ == null) {
+ return relatedResources_.size();
+ } else {
+ return relatedResourcesBuilder_.getCount();
+ }
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public com.google.cloud.asset.v1.RelatedResource getRelatedResources(int index) {
+ if (relatedResourcesBuilder_ == null) {
+ return relatedResources_.get(index);
+ } else {
+ return relatedResourcesBuilder_.getMessage(index);
+ }
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder setRelatedResources(int index, com.google.cloud.asset.v1.RelatedResource value) {
+ if (relatedResourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.set(index, value);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.setMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder setRelatedResources(
+ int index, com.google.cloud.asset.v1.RelatedResource.Builder builderForValue) {
+ if (relatedResourcesBuilder_ == null) {
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.set(index, builderForValue.build());
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.setMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder addRelatedResources(com.google.cloud.asset.v1.RelatedResource value) {
+ if (relatedResourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.add(value);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.addMessage(value);
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder addRelatedResources(int index, com.google.cloud.asset.v1.RelatedResource value) {
+ if (relatedResourcesBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.add(index, value);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.addMessage(index, value);
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder addRelatedResources(
+ com.google.cloud.asset.v1.RelatedResource.Builder builderForValue) {
+ if (relatedResourcesBuilder_ == null) {
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.add(builderForValue.build());
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.addMessage(builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder addRelatedResources(
+ int index, com.google.cloud.asset.v1.RelatedResource.Builder builderForValue) {
+ if (relatedResourcesBuilder_ == null) {
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.add(index, builderForValue.build());
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.addMessage(index, builderForValue.build());
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder addAllRelatedResources(
+ java.lang.Iterable extends com.google.cloud.asset.v1.RelatedResource> values) {
+ if (relatedResourcesBuilder_ == null) {
+ ensureRelatedResourcesIsMutable();
+ com.google.protobuf.AbstractMessageLite.Builder.addAll(values, relatedResources_);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.addAllMessages(values);
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder clearRelatedResources() {
+ if (relatedResourcesBuilder_ == null) {
+ relatedResources_ = java.util.Collections.emptyList();
+ bitField0_ = (bitField0_ & ~0x00000001);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.clear();
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public Builder removeRelatedResources(int index) {
+ if (relatedResourcesBuilder_ == null) {
+ ensureRelatedResourcesIsMutable();
+ relatedResources_.remove(index);
+ onChanged();
+ } else {
+ relatedResourcesBuilder_.remove(index);
+ }
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public com.google.cloud.asset.v1.RelatedResource.Builder getRelatedResourcesBuilder(int index) {
+ return getRelatedResourcesFieldBuilder().getBuilder(index);
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public com.google.cloud.asset.v1.RelatedResourceOrBuilder getRelatedResourcesOrBuilder(
+ int index) {
+ if (relatedResourcesBuilder_ == null) {
+ return relatedResources_.get(index);
+ } else {
+ return relatedResourcesBuilder_.getMessageOrBuilder(index);
+ }
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public java.util.List extends com.google.cloud.asset.v1.RelatedResourceOrBuilder>
+ getRelatedResourcesOrBuilderList() {
+ if (relatedResourcesBuilder_ != null) {
+ return relatedResourcesBuilder_.getMessageOrBuilderList();
+ } else {
+ return java.util.Collections.unmodifiableList(relatedResources_);
+ }
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public com.google.cloud.asset.v1.RelatedResource.Builder addRelatedResourcesBuilder() {
+ return getRelatedResourcesFieldBuilder()
+ .addBuilder(com.google.cloud.asset.v1.RelatedResource.getDefaultInstance());
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public com.google.cloud.asset.v1.RelatedResource.Builder addRelatedResourcesBuilder(int index) {
+ return getRelatedResourcesFieldBuilder()
+ .addBuilder(index, com.google.cloud.asset.v1.RelatedResource.getDefaultInstance());
+ }
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ public java.util.List
+ getRelatedResourcesBuilderList() {
+ return getRelatedResourcesFieldBuilder().getBuilderList();
+ }
+
+ private com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.cloud.asset.v1.RelatedResource,
+ com.google.cloud.asset.v1.RelatedResource.Builder,
+ com.google.cloud.asset.v1.RelatedResourceOrBuilder>
+ getRelatedResourcesFieldBuilder() {
+ if (relatedResourcesBuilder_ == null) {
+ relatedResourcesBuilder_ =
+ new com.google.protobuf.RepeatedFieldBuilderV3<
+ com.google.cloud.asset.v1.RelatedResource,
+ com.google.cloud.asset.v1.RelatedResource.Builder,
+ com.google.cloud.asset.v1.RelatedResourceOrBuilder>(
+ relatedResources_,
+ ((bitField0_ & 0x00000001) != 0),
+ getParentForChildren(),
+ isClean());
+ relatedResources_ = null;
+ }
+ return relatedResourcesBuilder_;
+ }
+
+ @java.lang.Override
+ public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.setUnknownFields(unknownFields);
+ }
+
+ @java.lang.Override
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return super.mergeUnknownFields(unknownFields);
+ }
+
+ // @@protoc_insertion_point(builder_scope:google.cloud.asset.v1.RelatedResources)
+ }
+
+ // @@protoc_insertion_point(class_scope:google.cloud.asset.v1.RelatedResources)
+ private static final com.google.cloud.asset.v1.RelatedResources DEFAULT_INSTANCE;
+
+ static {
+ DEFAULT_INSTANCE = new com.google.cloud.asset.v1.RelatedResources();
+ }
+
+ public static com.google.cloud.asset.v1.RelatedResources getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser PARSER =
+ new com.google.protobuf.AbstractParser() {
+ @java.lang.Override
+ public RelatedResources parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new RelatedResources(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.cloud.asset.v1.RelatedResources getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+}
diff --git a/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/RelatedResourcesOrBuilder.java b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/RelatedResourcesOrBuilder.java
new file mode 100644
index 000000000..7e13b3b81
--- /dev/null
+++ b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/RelatedResourcesOrBuilder.java
@@ -0,0 +1,77 @@
+/*
+ * 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
+ *
+ * https://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.
+ */
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: google/cloud/asset/v1/assets.proto
+
+package com.google.cloud.asset.v1;
+
+public interface RelatedResourcesOrBuilder
+ extends
+ // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1.RelatedResources)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ java.util.List getRelatedResourcesList();
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ com.google.cloud.asset.v1.RelatedResource getRelatedResources(int index);
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ int getRelatedResourcesCount();
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ java.util.List extends com.google.cloud.asset.v1.RelatedResourceOrBuilder>
+ getRelatedResourcesOrBuilderList();
+ /**
+ *
+ *
+ *
+ * The detailed related resources of the primary resource.
+ *
+ *
+ * repeated .google.cloud.asset.v1.RelatedResource related_resources = 1;
+ */
+ com.google.cloud.asset.v1.RelatedResourceOrBuilder getRelatedResourcesOrBuilder(int index);
+}
diff --git a/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResult.java b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResult.java
index 24d819ade..0b542aeda 100644
--- a/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResult.java
+++ b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResult.java
@@ -257,6 +257,25 @@ private ResourceSearchResult(
com.google.cloud.asset.v1.AttachedResource.parser(), extensionRegistry));
break;
}
+ case 170:
+ {
+ if (!((mutable_bitField0_ & 0x00000020) != 0)) {
+ relationships_ =
+ com.google.protobuf.MapField.newMapField(
+ RelationshipsDefaultEntryHolder.defaultEntry);
+ mutable_bitField0_ |= 0x00000020;
+ }
+ com.google.protobuf.MapEntry<
+ java.lang.String, com.google.cloud.asset.v1.RelatedResources>
+ relationships__ =
+ input.readMessage(
+ RelationshipsDefaultEntryHolder.defaultEntry.getParserForType(),
+ extensionRegistry);
+ relationships_
+ .getMutableMap()
+ .put(relationships__.getKey(), relationships__.getValue());
+ break;
+ }
case 826:
{
java.lang.String s = input.readStringRequireUtf8();
@@ -306,6 +325,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
switch (number) {
case 7:
return internalGetLabels();
+ case 21:
+ return internalGetRelationships();
default:
throw new RuntimeException("Invalid map field number: " + number);
}
@@ -1669,6 +1690,135 @@ public com.google.cloud.asset.v1.AttachedResourceOrBuilder getAttachedResourcesO
return attachedResources_.get(index);
}
+ public static final int RELATIONSHIPS_FIELD_NUMBER = 21;
+
+ private static final class RelationshipsDefaultEntryHolder {
+ static final com.google.protobuf.MapEntry<
+ java.lang.String, com.google.cloud.asset.v1.RelatedResources>
+ defaultEntry =
+ com.google.protobuf.MapEntry
+ .newDefaultInstance(
+ com.google.cloud.asset.v1.AssetProto
+ .internal_static_google_cloud_asset_v1_ResourceSearchResult_RelationshipsEntry_descriptor,
+ com.google.protobuf.WireFormat.FieldType.STRING,
+ "",
+ com.google.protobuf.WireFormat.FieldType.MESSAGE,
+ com.google.cloud.asset.v1.RelatedResources.getDefaultInstance());
+ }
+
+ private com.google.protobuf.MapField
+ relationships_;
+
+ private com.google.protobuf.MapField
+ internalGetRelationships() {
+ if (relationships_ == null) {
+ return com.google.protobuf.MapField.emptyMapField(
+ RelationshipsDefaultEntryHolder.defaultEntry);
+ }
+ return relationships_;
+ }
+
+ public int getRelationshipsCount() {
+ return internalGetRelationships().getMap().size();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public boolean containsRelationships(java.lang.String key) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ return internalGetRelationships().getMap().containsKey(key);
+ }
+ /** Use {@link #getRelationshipsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map
+ getRelationships() {
+ return getRelationshipsMap();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public java.util.Map
+ getRelationshipsMap() {
+ return internalGetRelationships().getMap();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public com.google.cloud.asset.v1.RelatedResources getRelationshipsOrDefault(
+ java.lang.String key, com.google.cloud.asset.v1.RelatedResources defaultValue) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ java.util.Map map =
+ internalGetRelationships().getMap();
+ return map.containsKey(key) ? map.get(key) : defaultValue;
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public com.google.cloud.asset.v1.RelatedResources getRelationshipsOrThrow(java.lang.String key) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ java.util.Map map =
+ internalGetRelationships().getMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return map.get(key);
+ }
+
public static final int PARENT_ASSET_TYPE_FIELD_NUMBER = 103;
private volatile java.lang.Object parentAssetType_;
/**
@@ -1795,6 +1945,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io
for (int i = 0; i < attachedResources_.size(); i++) {
output.writeMessage(20, attachedResources_.get(i));
}
+ com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
+ output, internalGetRelationships(), RelationshipsDefaultEntryHolder.defaultEntry, 21);
if (!getParentAssetTypeBytes().isEmpty()) {
com.google.protobuf.GeneratedMessageV3.writeString(output, 103, parentAssetType_);
}
@@ -1881,6 +2033,17 @@ public int getSerializedSize() {
size +=
com.google.protobuf.CodedOutputStream.computeMessageSize(20, attachedResources_.get(i));
}
+ for (java.util.Map.Entry entry :
+ internalGetRelationships().getMap().entrySet()) {
+ com.google.protobuf.MapEntry
+ relationships__ =
+ RelationshipsDefaultEntryHolder.defaultEntry
+ .newBuilderForType()
+ .setKey(entry.getKey())
+ .setValue(entry.getValue())
+ .build();
+ size += com.google.protobuf.CodedOutputStream.computeMessageSize(21, relationships__);
+ }
if (!getParentAssetTypeBytes().isEmpty()) {
size += com.google.protobuf.GeneratedMessageV3.computeStringSize(103, parentAssetType_);
}
@@ -1927,6 +2090,7 @@ public boolean equals(final java.lang.Object obj) {
if (!getParentFullResourceName().equals(other.getParentFullResourceName())) return false;
if (!getVersionedResourcesList().equals(other.getVersionedResourcesList())) return false;
if (!getAttachedResourcesList().equals(other.getAttachedResourcesList())) return false;
+ if (!internalGetRelationships().equals(other.internalGetRelationships())) return false;
if (!getParentAssetType().equals(other.getParentAssetType())) return false;
if (!unknownFields.equals(other.unknownFields)) return false;
return true;
@@ -1991,6 +2155,10 @@ public int hashCode() {
hash = (37 * hash) + ATTACHED_RESOURCES_FIELD_NUMBER;
hash = (53 * hash) + getAttachedResourcesList().hashCode();
}
+ if (!internalGetRelationships().getMap().isEmpty()) {
+ hash = (37 * hash) + RELATIONSHIPS_FIELD_NUMBER;
+ hash = (53 * hash) + internalGetRelationships().hashCode();
+ }
hash = (37 * hash) + PARENT_ASSET_TYPE_FIELD_NUMBER;
hash = (53 * hash) + getParentAssetType().hashCode();
hash = (29 * hash) + unknownFields.hashCode();
@@ -2116,6 +2284,8 @@ protected com.google.protobuf.MapField internalGetMapField(int number) {
switch (number) {
case 7:
return internalGetLabels();
+ case 21:
+ return internalGetRelationships();
default:
throw new RuntimeException("Invalid map field number: " + number);
}
@@ -2126,6 +2296,8 @@ protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
switch (number) {
case 7:
return internalGetMutableLabels();
+ case 21:
+ return internalGetMutableRelationships();
default:
throw new RuntimeException("Invalid map field number: " + number);
}
@@ -2216,6 +2388,7 @@ public Builder clear() {
} else {
attachedResourcesBuilder_.clear();
}
+ internalGetMutableRelationships().clear();
parentAssetType_ = "";
return this;
@@ -2301,6 +2474,8 @@ public com.google.cloud.asset.v1.ResourceSearchResult buildPartial() {
} else {
result.attachedResources_ = attachedResourcesBuilder_.build();
}
+ result.relationships_ = internalGetRelationships();
+ result.relationships_.makeImmutable();
result.parentAssetType_ = parentAssetType_;
onBuilt();
return result;
@@ -2475,6 +2650,7 @@ public Builder mergeFrom(com.google.cloud.asset.v1.ResourceSearchResult other) {
}
}
}
+ internalGetMutableRelationships().mergeFrom(other.internalGetRelationships());
if (!other.getParentAssetType().isEmpty()) {
parentAssetType_ = other.parentAssetType_;
onChanged();
@@ -6291,6 +6467,213 @@ public com.google.cloud.asset.v1.AttachedResource.Builder addAttachedResourcesBu
return attachedResourcesBuilder_;
}
+ private com.google.protobuf.MapField<
+ java.lang.String, com.google.cloud.asset.v1.RelatedResources>
+ relationships_;
+
+ private com.google.protobuf.MapField<
+ java.lang.String, com.google.cloud.asset.v1.RelatedResources>
+ internalGetRelationships() {
+ if (relationships_ == null) {
+ return com.google.protobuf.MapField.emptyMapField(
+ RelationshipsDefaultEntryHolder.defaultEntry);
+ }
+ return relationships_;
+ }
+
+ private com.google.protobuf.MapField<
+ java.lang.String, com.google.cloud.asset.v1.RelatedResources>
+ internalGetMutableRelationships() {
+ onChanged();
+ ;
+ if (relationships_ == null) {
+ relationships_ =
+ com.google.protobuf.MapField.newMapField(RelationshipsDefaultEntryHolder.defaultEntry);
+ }
+ if (!relationships_.isMutable()) {
+ relationships_ = relationships_.copy();
+ }
+ return relationships_;
+ }
+
+ public int getRelationshipsCount() {
+ return internalGetRelationships().getMap().size();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public boolean containsRelationships(java.lang.String key) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ return internalGetRelationships().getMap().containsKey(key);
+ }
+ /** Use {@link #getRelationshipsMap()} instead. */
+ @java.lang.Override
+ @java.lang.Deprecated
+ public java.util.Map
+ getRelationships() {
+ return getRelationshipsMap();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public java.util.Map
+ getRelationshipsMap() {
+ return internalGetRelationships().getMap();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public com.google.cloud.asset.v1.RelatedResources getRelationshipsOrDefault(
+ java.lang.String key, com.google.cloud.asset.v1.RelatedResources defaultValue) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ java.util.Map map =
+ internalGetRelationships().getMap();
+ return map.containsKey(key) ? map.get(key) : defaultValue;
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ @java.lang.Override
+ public com.google.cloud.asset.v1.RelatedResources getRelationshipsOrThrow(
+ java.lang.String key) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ java.util.Map map =
+ internalGetRelationships().getMap();
+ if (!map.containsKey(key)) {
+ throw new java.lang.IllegalArgumentException();
+ }
+ return map.get(key);
+ }
+
+ public Builder clearRelationships() {
+ internalGetMutableRelationships().getMutableMap().clear();
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ public Builder removeRelationships(java.lang.String key) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ internalGetMutableRelationships().getMutableMap().remove(key);
+ return this;
+ }
+ /** Use alternate mutation accessors instead. */
+ @java.lang.Deprecated
+ public java.util.Map
+ getMutableRelationships() {
+ return internalGetMutableRelationships().getMutableMap();
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ public Builder putRelationships(
+ java.lang.String key, com.google.cloud.asset.v1.RelatedResources value) {
+ if (key == null) {
+ throw new java.lang.NullPointerException();
+ }
+ if (value == null) {
+ throw new java.lang.NullPointerException();
+ }
+ internalGetMutableRelationships().getMutableMap().put(key, value);
+ return this;
+ }
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ public Builder putAllRelationships(
+ java.util.Map values) {
+ internalGetMutableRelationships().getMutableMap().putAll(values);
+ return this;
+ }
+
private java.lang.Object parentAssetType_ = "";
/**
*
diff --git a/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResultOrBuilder.java b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResultOrBuilder.java
index 80d0550ff..3b2e5977f 100644
--- a/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResultOrBuilder.java
+++ b/proto-google-cloud-asset-v1/src/main/java/com/google/cloud/asset/v1/ResourceSearchResultOrBuilder.java
@@ -1005,6 +1005,86 @@ public interface ResourceSearchResultOrBuilder
*/
com.google.cloud.asset.v1.AttachedResourceOrBuilder getAttachedResourcesOrBuilder(int index);
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ int getRelationshipsCount();
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ boolean containsRelationships(java.lang.String key);
+ /** Use {@link #getRelationshipsMap()} instead. */
+ @java.lang.Deprecated
+ java.util.Map getRelationships();
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ java.util.Map getRelationshipsMap();
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ com.google.cloud.asset.v1.RelatedResources getRelationshipsOrDefault(
+ java.lang.String key, com.google.cloud.asset.v1.RelatedResources defaultValue);
+ /**
+ *
+ *
+ *
+ * A map of related resources of this resource, keyed by the
+ * relationship type. A relationship type is in the format of
+ * {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ * `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ * See [supported relationship
+ * types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ *
+ *
+ * map<string, .google.cloud.asset.v1.RelatedResources> relationships = 21;
+ */
+ com.google.cloud.asset.v1.RelatedResources getRelationshipsOrThrow(java.lang.String key);
+
/**
*
*
diff --git a/proto-google-cloud-asset-v1/src/main/proto/google/cloud/asset/v1/assets.proto b/proto-google-cloud-asset-v1/src/main/proto/google/cloud/asset/v1/assets.proto
index 97bc4872d..3d433b8f3 100644
--- a/proto-google-cloud-asset-v1/src/main/proto/google/cloud/asset/v1/assets.proto
+++ b/proto-google-cloud-asset-v1/src/main/proto/google/cloud/asset/v1/assets.proto
@@ -503,6 +503,14 @@ message ResourceSearchResult {
// as to allow users to search on them.
repeated AttachedResource attached_resources = 20;
+ // A map of related resources of this resource, keyed by the
+ // relationship type. A relationship type is in the format of
+ // {SourceType}_{ACTION}_{DestType}. Example: `DISK_TO_INSTANCE`,
+ // `DISK_TO_NETWORK`, `INSTANCE_TO_INSTANCEGROUP`.
+ // See [supported relationship
+ // types](https://cloud.google.com/asset-inventory/docs/supported-asset-types#supported_relationship_types).
+ map relationships = 21;
+
// The type of this resource's immediate parent, if there is one.
//
// To search against the `parent_asset_type`:
@@ -558,6 +566,22 @@ message AttachedResource {
repeated VersionedResource versioned_resources = 3;
}
+// The related resources of the primary resource.
+message RelatedResources {
+ // The detailed related resources of the primary resource.
+ repeated RelatedResource related_resources = 1;
+}
+
+// The detailed related resource.
+message RelatedResource {
+ // The type of the asset. Example: `compute.googleapis.com/Instance`
+ string asset_type = 1;
+
+ // The full resource name of the related resource. Example:
+ // `//compute.googleapis.com/projects/my_proj_123/zones/instance/instance123`
+ string full_resource_name = 2;
+}
+
// A result of IAM Policy search, containing information of an IAM policy.
message IamPolicySearchResult {
// Explanation about the IAM policy search result.
diff --git a/proto-google-cloud-asset-v1p1beta1/pom.xml b/proto-google-cloud-asset-v1p1beta1/pom.xml
index e46b8729d..ba6382416 100644
--- a/proto-google-cloud-asset-v1p1beta1/pom.xml
+++ b/proto-google-cloud-asset-v1p1beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-asset-v1p1beta1
- 0.101.0
+ 0.102.0
proto-google-cloud-asset-v1p1beta1
PROTO library for proto-google-cloud-asset-v1p1beta1
com.google.cloud
google-cloud-asset-parent
- 3.1.0
+ 3.2.0
diff --git a/proto-google-cloud-asset-v1p2beta1/pom.xml b/proto-google-cloud-asset-v1p2beta1/pom.xml
index 397ac89dc..b030959cb 100644
--- a/proto-google-cloud-asset-v1p2beta1/pom.xml
+++ b/proto-google-cloud-asset-v1p2beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-asset-v1p2beta1
- 0.101.0
+ 0.102.0
proto-google-cloud-asset-v1p2beta1
PROTO library for proto-google-cloud-asset-v1p2beta1
com.google.cloud
google-cloud-asset-parent
- 3.1.0
+ 3.2.0
diff --git a/proto-google-cloud-asset-v1p4beta1/pom.xml b/proto-google-cloud-asset-v1p4beta1/pom.xml
index 8a96365eb..26df12b0e 100644
--- a/proto-google-cloud-asset-v1p4beta1/pom.xml
+++ b/proto-google-cloud-asset-v1p4beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-asset-v1p4beta1
- 0.101.0
+ 0.102.0
proto-google-cloud-asset-v1p4beta1
PROTO library for proto-google-cloud-asset-v1p4beta1
com.google.cloud
google-cloud-asset-parent
- 3.1.0
+ 3.2.0
diff --git a/proto-google-cloud-asset-v1p5beta1/pom.xml b/proto-google-cloud-asset-v1p5beta1/pom.xml
index a14dd2fb6..b82157a19 100644
--- a/proto-google-cloud-asset-v1p5beta1/pom.xml
+++ b/proto-google-cloud-asset-v1p5beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-asset-v1p5beta1
- 0.101.0
+ 0.102.0
proto-google-cloud-asset-v1p5beta1
PROTO library for proto-google-cloud-asset-v1p4beta1
com.google.cloud
google-cloud-asset-parent
- 3.1.0
+ 3.2.0
diff --git a/proto-google-cloud-asset-v1p7beta1/pom.xml b/proto-google-cloud-asset-v1p7beta1/pom.xml
index ff32eaa4a..9d9d4d42b 100644
--- a/proto-google-cloud-asset-v1p7beta1/pom.xml
+++ b/proto-google-cloud-asset-v1p7beta1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-asset-v1p7beta1
- 3.1.0
+ 3.2.0
proto-google-cloud-asset-v1p7beta1
Proto library for google-cloud-asset
com.google.cloud
google-cloud-asset-parent
- 3.1.0
+ 3.2.0
diff --git a/renovate.json b/renovate.json
index ad69e0422..513bba4a2 100644
--- a/renovate.json
+++ b/renovate.json
@@ -50,7 +50,8 @@
"^junit:junit",
"^com.google.truth:truth",
"^org.mockito:mockito-core",
- "^org.objenesis:objenesis"
+ "^org.objenesis:objenesis",
+ "^com.google.cloud:google-cloud-conformance-tests"
],
"semanticCommitType": "test",
"semanticCommitScope": "deps"
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index eb237df8d..25f053281 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,25 +29,25 @@
com.google.cloud
google-cloud-asset
- 3.0.1
+ 3.1.0
com.google.cloud
google-cloud-core
- 2.1.1
+ 2.1.2
com.google.cloud
google-cloud-storage
- 2.0.2
+ 2.1.0
test
com.google.cloud
google-cloud-bigquery
- 2.1.2
+ 2.1.6
test
@@ -59,7 +59,7 @@
com.google.cloud
google-cloud-resourcemanager
- 1.0.3
+ 1.0.4
test
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 7340205f9..c0e645563 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,25 +28,25 @@
com.google.cloud
google-cloud-asset
- 3.1.0
+ 3.2.0
com.google.cloud
google-cloud-core
- 2.1.1
+ 2.1.2
com.google.cloud
google-cloud-storage
- 2.0.2
+ 2.1.0
test
com.google.cloud
google-cloud-bigquery
- 2.1.2
+ 2.1.6
test
@@ -58,7 +58,7 @@
com.google.cloud
google-cloud-resourcemanager
- 1.0.3
+ 1.0.4
test
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index c3707e6ab..3accb3939 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
libraries-bom
- 21.0.0
+ 22.0.0
pom
import
diff --git a/versions.txt b/versions.txt
index e04e8d8ce..e69626d84 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,16 +1,16 @@
# Format:
# module:released-version:current-version
-google-cloud-asset:3.1.0:3.1.0
-grpc-google-cloud-asset-v1:3.1.0:3.1.0
-grpc-google-cloud-asset-v1p1beta1:0.101.0:0.101.0
-grpc-google-cloud-asset-v1p2beta1:0.101.0:0.101.0
-grpc-google-cloud-asset-v1p4beta1:0.101.0:0.101.0
-grpc-google-cloud-asset-v1p5beta1:0.101.0:0.101.0
-grpc-google-cloud-asset-v1p7beta1:3.1.0:3.1.0
-proto-google-cloud-asset-v1:3.1.0:3.1.0
-proto-google-cloud-asset-v1p1beta1:0.101.0:0.101.0
-proto-google-cloud-asset-v1p2beta1:0.101.0:0.101.0
-proto-google-cloud-asset-v1p4beta1:0.101.0:0.101.0
-proto-google-cloud-asset-v1p5beta1:0.101.0:0.101.0
-proto-google-cloud-asset-v1p7beta1:3.1.0:3.1.0
+google-cloud-asset:3.2.0:3.2.0
+grpc-google-cloud-asset-v1:3.2.0:3.2.0
+grpc-google-cloud-asset-v1p1beta1:0.102.0:0.102.0
+grpc-google-cloud-asset-v1p2beta1:0.102.0:0.102.0
+grpc-google-cloud-asset-v1p4beta1:0.102.0:0.102.0
+grpc-google-cloud-asset-v1p5beta1:0.102.0:0.102.0
+grpc-google-cloud-asset-v1p7beta1:3.2.0:3.2.0
+proto-google-cloud-asset-v1:3.2.0:3.2.0
+proto-google-cloud-asset-v1p1beta1:0.102.0:0.102.0
+proto-google-cloud-asset-v1p2beta1:0.102.0:0.102.0
+proto-google-cloud-asset-v1p4beta1:0.102.0:0.102.0
+proto-google-cloud-asset-v1p5beta1:0.102.0:0.102.0
+proto-google-cloud-asset-v1p7beta1:3.2.0:3.2.0