/*
 * 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 ResourceSearchResultOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.asset.v1.ResourceSearchResult)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The full resource name of this resource. Example:
   * `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
   * See [Cloud Asset Inventory Resource Name
   * Format](https://cloud.google.com/asset-inventory/docs/resource-name-format)
   * for more information.
   * To search against the `name`:
   * * Use a field query. Example: `name:instance1`
   * * Use a free text query. Example: `instance1`
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The name.
   */
  java.lang.String getName();
  /**
   *
   *
   * <pre>
   * The full resource name of this resource. Example:
   * `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`.
   * See [Cloud Asset Inventory Resource Name
   * Format](https://cloud.google.com/asset-inventory/docs/resource-name-format)
   * for more information.
   * To search against the `name`:
   * * Use a field query. Example: `name:instance1`
   * * Use a free text query. Example: `instance1`
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString getNameBytes();

  /**
   *
   *
   * <pre>
   * The type of this resource. Example: `compute.googleapis.com/Disk`.
   * To search against the `asset_type`:
   * * Specify the `asset_type` field in your search request.
   * </pre>
   *
   * <code>string asset_type = 2;</code>
   *
   * @return The assetType.
   */
  java.lang.String getAssetType();
  /**
   *
   *
   * <pre>
   * The type of this resource. Example: `compute.googleapis.com/Disk`.
   * To search against the `asset_type`:
   * * Specify the `asset_type` field in your search request.
   * </pre>
   *
   * <code>string asset_type = 2;</code>
   *
   * @return The bytes for assetType.
   */
  com.google.protobuf.ByteString getAssetTypeBytes();

  /**
   *
   *
   * <pre>
   * The project that this resource belongs to, in the form of
   * projects/{PROJECT_NUMBER}. This field is available when the resource
   * belongs to a project.
   * To search against `project`:
   * * Use a field query. Example: `project:12345`
   * * Use a free text query. Example: `12345`
   * * Specify the `scope` field as this project in your search request.
   * </pre>
   *
   * <code>string project = 3;</code>
   *
   * @return The project.
   */
  java.lang.String getProject();
  /**
   *
   *
   * <pre>
   * The project that this resource belongs to, in the form of
   * projects/{PROJECT_NUMBER}. This field is available when the resource
   * belongs to a project.
   * To search against `project`:
   * * Use a field query. Example: `project:12345`
   * * Use a free text query. Example: `12345`
   * * Specify the `scope` field as this project in your search request.
   * </pre>
   *
   * <code>string project = 3;</code>
   *
   * @return The bytes for project.
   */
  com.google.protobuf.ByteString getProjectBytes();

  /**
   *
   *
   * <pre>
   * The folder(s) that this resource belongs to, in the form of
   * folders/{FOLDER_NUMBER}. This field is available when the resource
   * belongs to one or more folders.
   * To search against `folders`:
   * * Use a field query. Example: `folders:(123 OR 456)`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this folder in your search request.
   * </pre>
   *
   * <code>repeated string folders = 17;</code>
   *
   * @return A list containing the folders.
   */
  java.util.List<java.lang.String> getFoldersList();
  /**
   *
   *
   * <pre>
   * The folder(s) that this resource belongs to, in the form of
   * folders/{FOLDER_NUMBER}. This field is available when the resource
   * belongs to one or more folders.
   * To search against `folders`:
   * * Use a field query. Example: `folders:(123 OR 456)`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this folder in your search request.
   * </pre>
   *
   * <code>repeated string folders = 17;</code>
   *
   * @return The count of folders.
   */
  int getFoldersCount();
  /**
   *
   *
   * <pre>
   * The folder(s) that this resource belongs to, in the form of
   * folders/{FOLDER_NUMBER}. This field is available when the resource
   * belongs to one or more folders.
   * To search against `folders`:
   * * Use a field query. Example: `folders:(123 OR 456)`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this folder in your search request.
   * </pre>
   *
   * <code>repeated string folders = 17;</code>
   *
   * @param index The index of the element to return.
   * @return The folders at the given index.
   */
  java.lang.String getFolders(int index);
  /**
   *
   *
   * <pre>
   * The folder(s) that this resource belongs to, in the form of
   * folders/{FOLDER_NUMBER}. This field is available when the resource
   * belongs to one or more folders.
   * To search against `folders`:
   * * Use a field query. Example: `folders:(123 OR 456)`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this folder in your search request.
   * </pre>
   *
   * <code>repeated string folders = 17;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the folders at the given index.
   */
  com.google.protobuf.ByteString getFoldersBytes(int index);

  /**
   *
   *
   * <pre>
   * The organization that this resource belongs to, in the form of
   * organizations/{ORGANIZATION_NUMBER}. This field is available when the
   * resource belongs to an organization.
   * To search against `organization`:
   * * Use a field query. Example: `organization:123`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this organization in your search request.
   * </pre>
   *
   * <code>string organization = 18;</code>
   *
   * @return The organization.
   */
  java.lang.String getOrganization();
  /**
   *
   *
   * <pre>
   * The organization that this resource belongs to, in the form of
   * organizations/{ORGANIZATION_NUMBER}. This field is available when the
   * resource belongs to an organization.
   * To search against `organization`:
   * * Use a field query. Example: `organization:123`
   * * Use a free text query. Example: `123`
   * * Specify the `scope` field as this organization in your search request.
   * </pre>
   *
   * <code>string organization = 18;</code>
   *
   * @return The bytes for organization.
   */
  com.google.protobuf.ByteString getOrganizationBytes();

  /**
   *
   *
   * <pre>
   * The display name of this resource. This field is available only when the
   * resource's Protobuf contains it.
   * To search against the `display_name`:
   * * Use a field query. Example: `displayName:"My Instance"`
   * * Use a free text query. Example: `"My Instance"`
   * </pre>
   *
   * <code>string display_name = 4;</code>
   *
   * @return The displayName.
   */
  java.lang.String getDisplayName();
  /**
   *
   *
   * <pre>
   * The display name of this resource. This field is available only when the
   * resource's Protobuf contains it.
   * To search against the `display_name`:
   * * Use a field query. Example: `displayName:"My Instance"`
   * * Use a free text query. Example: `"My Instance"`
   * </pre>
   *
   * <code>string display_name = 4;</code>
   *
   * @return The bytes for displayName.
   */
  com.google.protobuf.ByteString getDisplayNameBytes();

  /**
   *
   *
   * <pre>
   * One or more paragraphs of text description of this resource. Maximum length
   * could be up to 1M bytes. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `description`:
   * * Use a field query. Example: `description:"important instance"`
   * * Use a free text query. Example: `"important instance"`
   * </pre>
   *
   * <code>string description = 5;</code>
   *
   * @return The description.
   */
  java.lang.String getDescription();
  /**
   *
   *
   * <pre>
   * One or more paragraphs of text description of this resource. Maximum length
   * could be up to 1M bytes. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `description`:
   * * Use a field query. Example: `description:"important instance"`
   * * Use a free text query. Example: `"important instance"`
   * </pre>
   *
   * <code>string description = 5;</code>
   *
   * @return The bytes for description.
   */
  com.google.protobuf.ByteString getDescriptionBytes();

  /**
   *
   *
   * <pre>
   * Location can be `global`, regional like `us-east1`, or zonal like
   * `us-west1-b`. This field is available only when the resource's Protobuf
   * contains it.
   * To search against the `location`:
   * * Use a field query. Example: `location:us-west*`
   * * Use a free text query. Example: `us-west*`
   * </pre>
   *
   * <code>string location = 6;</code>
   *
   * @return The location.
   */
  java.lang.String getLocation();
  /**
   *
   *
   * <pre>
   * Location can be `global`, regional like `us-east1`, or zonal like
   * `us-west1-b`. This field is available only when the resource's Protobuf
   * contains it.
   * To search against the `location`:
   * * Use a field query. Example: `location:us-west*`
   * * Use a free text query. Example: `us-west*`
   * </pre>
   *
   * <code>string location = 6;</code>
   *
   * @return The bytes for location.
   */
  com.google.protobuf.ByteString getLocationBytes();

  /**
   *
   *
   * <pre>
   * Labels associated with this resource. See [Labelling and grouping Google
   * Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `labels`:
   * * Use a field query:
   *     - query on any label's key or value. Example: `labels:prod`
   *     - query by a given label. Example: `labels.env:prod`
   *     - query by a given label's existence. Example: `labels.env:*`
   * * Use a free text query. Example: `prod`
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 7;</code>
   */
  int getLabelsCount();
  /**
   *
   *
   * <pre>
   * Labels associated with this resource. See [Labelling and grouping Google
   * Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `labels`:
   * * Use a field query:
   *     - query on any label's key or value. Example: `labels:prod`
   *     - query by a given label. Example: `labels.env:prod`
   *     - query by a given label's existence. Example: `labels.env:*`
   * * Use a free text query. Example: `prod`
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 7;</code>
   */
  boolean containsLabels(java.lang.String key);
  /** Use {@link #getLabelsMap()} instead. */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, java.lang.String> getLabels();
  /**
   *
   *
   * <pre>
   * Labels associated with this resource. See [Labelling and grouping Google
   * Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `labels`:
   * * Use a field query:
   *     - query on any label's key or value. Example: `labels:prod`
   *     - query by a given label. Example: `labels.env:prod`
   *     - query by a given label's existence. Example: `labels.env:*`
   * * Use a free text query. Example: `prod`
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 7;</code>
   */
  java.util.Map<java.lang.String, java.lang.String> getLabelsMap();
  /**
   *
   *
   * <pre>
   * Labels associated with this resource. See [Labelling and grouping Google
   * Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `labels`:
   * * Use a field query:
   *     - query on any label's key or value. Example: `labels:prod`
   *     - query by a given label. Example: `labels.env:prod`
   *     - query by a given label's existence. Example: `labels.env:*`
   * * Use a free text query. Example: `prod`
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 7;</code>
   */
  /* nullable */
  java.lang.String getLabelsOrDefault(
      java.lang.String key,
      /* nullable */
      java.lang.String defaultValue);
  /**
   *
   *
   * <pre>
   * Labels associated with this resource. See [Labelling and grouping Google
   * Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `labels`:
   * * Use a field query:
   *     - query on any label's key or value. Example: `labels:prod`
   *     - query by a given label. Example: `labels.env:prod`
   *     - query by a given label's existence. Example: `labels.env:*`
   * * Use a free text query. Example: `prod`
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 7;</code>
   */
  java.lang.String getLabelsOrThrow(java.lang.String key);

  /**
   *
   *
   * <pre>
   * Network tags associated with this resource. Like labels, network tags are a
   * type of annotations used to group Google Cloud resources. See [Labelling
   * Google Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `network_tags`:
   * * Use a field query. Example: `networkTags:internal`
   * * Use a free text query. Example: `internal`
   * </pre>
   *
   * <code>repeated string network_tags = 8;</code>
   *
   * @return A list containing the networkTags.
   */
  java.util.List<java.lang.String> getNetworkTagsList();
  /**
   *
   *
   * <pre>
   * Network tags associated with this resource. Like labels, network tags are a
   * type of annotations used to group Google Cloud resources. See [Labelling
   * Google Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `network_tags`:
   * * Use a field query. Example: `networkTags:internal`
   * * Use a free text query. Example: `internal`
   * </pre>
   *
   * <code>repeated string network_tags = 8;</code>
   *
   * @return The count of networkTags.
   */
  int getNetworkTagsCount();
  /**
   *
   *
   * <pre>
   * Network tags associated with this resource. Like labels, network tags are a
   * type of annotations used to group Google Cloud resources. See [Labelling
   * Google Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `network_tags`:
   * * Use a field query. Example: `networkTags:internal`
   * * Use a free text query. Example: `internal`
   * </pre>
   *
   * <code>repeated string network_tags = 8;</code>
   *
   * @param index The index of the element to return.
   * @return The networkTags at the given index.
   */
  java.lang.String getNetworkTags(int index);
  /**
   *
   *
   * <pre>
   * Network tags associated with this resource. Like labels, network tags are a
   * type of annotations used to group Google Cloud resources. See [Labelling
   * Google Cloud
   * resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources)
   * for more information. This field is available only when the resource's
   * Protobuf contains it.
   * To search against the `network_tags`:
   * * Use a field query. Example: `networkTags:internal`
   * * Use a free text query. Example: `internal`
   * </pre>
   *
   * <code>repeated string network_tags = 8;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the networkTags at the given index.
   */
  com.google.protobuf.ByteString getNetworkTagsBytes(int index);

  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * name or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * name.
   * This field only presents for the purpose of backward compatibility. Please
   * use the `kms_keys` field to retrieve Cloud KMS key information. This field
   * is available only when the resource's Protobuf contains it and will only be
   * populated for [these resource
   * types](https://cloud.google.com/asset-inventory/docs/legacy-field-names#resource_types_with_the_to_be_deprecated_kmskey_field)
   * for backward compatible purposes.
   * To search against the `kms_key`:
   * * Use a field query. Example: `kmsKey:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>string kms_key = 10 [deprecated = true];</code>
   *
   * @deprecated google.cloud.asset.v1.ResourceSearchResult.kms_key is deprecated. See
   *     google/cloud/asset/v1/assets.proto;l=437
   * @return The kmsKey.
   */
  @java.lang.Deprecated
  java.lang.String getKmsKey();
  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * name or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * name.
   * This field only presents for the purpose of backward compatibility. Please
   * use the `kms_keys` field to retrieve Cloud KMS key information. This field
   * is available only when the resource's Protobuf contains it and will only be
   * populated for [these resource
   * types](https://cloud.google.com/asset-inventory/docs/legacy-field-names#resource_types_with_the_to_be_deprecated_kmskey_field)
   * for backward compatible purposes.
   * To search against the `kms_key`:
   * * Use a field query. Example: `kmsKey:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>string kms_key = 10 [deprecated = true];</code>
   *
   * @deprecated google.cloud.asset.v1.ResourceSearchResult.kms_key is deprecated. See
   *     google/cloud/asset/v1/assets.proto;l=437
   * @return The bytes for kmsKey.
   */
  @java.lang.Deprecated
  com.google.protobuf.ByteString getKmsKeyBytes();

  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * names or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * names. This field is available only when the resource's Protobuf contains
   * it.
   * To search against the `kms_keys`:
   * * Use a field query. Example: `kmsKeys:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>repeated string kms_keys = 28;</code>
   *
   * @return A list containing the kmsKeys.
   */
  java.util.List<java.lang.String> getKmsKeysList();
  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * names or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * names. This field is available only when the resource's Protobuf contains
   * it.
   * To search against the `kms_keys`:
   * * Use a field query. Example: `kmsKeys:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>repeated string kms_keys = 28;</code>
   *
   * @return The count of kmsKeys.
   */
  int getKmsKeysCount();
  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * names or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * names. This field is available only when the resource's Protobuf contains
   * it.
   * To search against the `kms_keys`:
   * * Use a field query. Example: `kmsKeys:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>repeated string kms_keys = 28;</code>
   *
   * @param index The index of the element to return.
   * @return The kmsKeys at the given index.
   */
  java.lang.String getKmsKeys(int index);
  /**
   *
   *
   * <pre>
   * The Cloud KMS
   * [CryptoKey](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys)
   * names or
   * [CryptoKeyVersion](https://cloud.google.com/kms/docs/reference/rest/v1/projects.locations.keyRings.cryptoKeys.cryptoKeyVersions)
   * names. This field is available only when the resource's Protobuf contains
   * it.
   * To search against the `kms_keys`:
   * * Use a field query. Example: `kmsKeys:key`
   * * Use a free text query. Example: `key`
   * </pre>
   *
   * <code>repeated string kms_keys = 28;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the kmsKeys at the given index.
   */
  com.google.protobuf.ByteString getKmsKeysBytes(int index);

  /**
   *
   *
   * <pre>
   * The create timestamp of this resource, at which the resource was created.
   * The granularity is in seconds. Timestamp.nanos will always be 0. This field
   * is available only when the resource's Protobuf contains it.
   * To search against `create_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `createTime &gt; 1609459200`
   *     - value in date string. Example: `createTime &gt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `createTime &gt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 11;</code>
   *
   * @return Whether the createTime field is set.
   */
  boolean hasCreateTime();
  /**
   *
   *
   * <pre>
   * The create timestamp of this resource, at which the resource was created.
   * The granularity is in seconds. Timestamp.nanos will always be 0. This field
   * is available only when the resource's Protobuf contains it.
   * To search against `create_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `createTime &gt; 1609459200`
   *     - value in date string. Example: `createTime &gt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `createTime &gt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 11;</code>
   *
   * @return The createTime.
   */
  com.google.protobuf.Timestamp getCreateTime();
  /**
   *
   *
   * <pre>
   * The create timestamp of this resource, at which the resource was created.
   * The granularity is in seconds. Timestamp.nanos will always be 0. This field
   * is available only when the resource's Protobuf contains it.
   * To search against `create_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `createTime &gt; 1609459200`
   *     - value in date string. Example: `createTime &gt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `createTime &gt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 11;</code>
   */
  com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder();

  /**
   *
   *
   * <pre>
   * The last update timestamp of this resource, at which the resource was last
   * modified or deleted. The granularity is in seconds. Timestamp.nanos will
   * always be 0. This field is available only when the resource's Protobuf
   * contains it.
   * To search against `update_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `updateTime &lt; 1609459200`
   *     - value in date string. Example: `updateTime &lt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `updateTime &lt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp update_time = 12;</code>
   *
   * @return Whether the updateTime field is set.
   */
  boolean hasUpdateTime();
  /**
   *
   *
   * <pre>
   * The last update timestamp of this resource, at which the resource was last
   * modified or deleted. The granularity is in seconds. Timestamp.nanos will
   * always be 0. This field is available only when the resource's Protobuf
   * contains it.
   * To search against `update_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `updateTime &lt; 1609459200`
   *     - value in date string. Example: `updateTime &lt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `updateTime &lt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp update_time = 12;</code>
   *
   * @return The updateTime.
   */
  com.google.protobuf.Timestamp getUpdateTime();
  /**
   *
   *
   * <pre>
   * The last update timestamp of this resource, at which the resource was last
   * modified or deleted. The granularity is in seconds. Timestamp.nanos will
   * always be 0. This field is available only when the resource's Protobuf
   * contains it.
   * To search against `update_time`:
   * * Use a field query.
   *     - value in seconds since unix epoch. Example: `updateTime &lt; 1609459200`
   *     - value in date string. Example: `updateTime &lt; 2021-01-01`
   *     - value in date-time string (must be quoted). Example: `updateTime &lt;
   *     "2021-01-01T00:00:00"`
   * </pre>
   *
   * <code>.google.protobuf.Timestamp update_time = 12;</code>
   */
  com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder();

  /**
   *
   *
   * <pre>
   * The state of this resource. Different resources types have different state
   * definitions that are mapped from various fields of different resource
   * types. This field is available only when the resource's Protobuf contains
   * it.
   * Example:
   * If the resource is an instance provided by Compute Engine,
   * its state will include PROVISIONING, STAGING, RUNNING, STOPPING,
   * SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition
   * in [API
   * Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances).
   * If the resource is a project provided by Resource Manager, its state
   * will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and
   * DELETE_IN_PROGRESS. See `lifecycleState` definition in [API
   * Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects).
   * To search against the `state`:
   * * Use a field query. Example: `state:RUNNING`
   * * Use a free text query. Example: `RUNNING`
   * </pre>
   *
   * <code>string state = 13;</code>
   *
   * @return The state.
   */
  java.lang.String getState();
  /**
   *
   *
   * <pre>
   * The state of this resource. Different resources types have different state
   * definitions that are mapped from various fields of different resource
   * types. This field is available only when the resource's Protobuf contains
   * it.
   * Example:
   * If the resource is an instance provided by Compute Engine,
   * its state will include PROVISIONING, STAGING, RUNNING, STOPPING,
   * SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. See `status` definition
   * in [API
   * Reference](https://cloud.google.com/compute/docs/reference/rest/v1/instances).
   * If the resource is a project provided by Resource Manager, its state
   * will include LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED and
   * DELETE_IN_PROGRESS. See `lifecycleState` definition in [API
   * Reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects).
   * To search against the `state`:
   * * Use a field query. Example: `state:RUNNING`
   * * Use a free text query. Example: `RUNNING`
   * </pre>
   *
   * <code>string state = 13;</code>
   *
   * @return The bytes for state.
   */
  com.google.protobuf.ByteString getStateBytes();

  /**
   *
   *
   * <pre>
   * The additional searchable attributes of this resource. The attributes may
   * vary from one resource type to another. Examples: `projectId` for Project,
   * `dnsName` for DNS ManagedZone. This field contains a subset of the resource
   * metadata fields that are returned by the List or Get APIs provided by the
   * corresponding Google Cloud service (e.g., Compute Engine). see [API
   * references and supported searchable
   * attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types)
   * to see which fields are included.
   * You can search values of these fields through free text search. However,
   * you should not consume the field programically as the field names and
   * values may change as the Google Cloud service updates to a new incompatible
   * API version.
   * To search against the `additional_attributes`:
   * * Use a free text query to match the attributes values. Example: to search
   *   `additional_attributes = { dnsName: "foobar" }`, you can issue a query
   *   `foobar`.
   * </pre>
   *
   * <code>.google.protobuf.Struct additional_attributes = 9;</code>
   *
   * @return Whether the additionalAttributes field is set.
   */
  boolean hasAdditionalAttributes();
  /**
   *
   *
   * <pre>
   * The additional searchable attributes of this resource. The attributes may
   * vary from one resource type to another. Examples: `projectId` for Project,
   * `dnsName` for DNS ManagedZone. This field contains a subset of the resource
   * metadata fields that are returned by the List or Get APIs provided by the
   * corresponding Google Cloud service (e.g., Compute Engine). see [API
   * references and supported searchable
   * attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types)
   * to see which fields are included.
   * You can search values of these fields through free text search. However,
   * you should not consume the field programically as the field names and
   * values may change as the Google Cloud service updates to a new incompatible
   * API version.
   * To search against the `additional_attributes`:
   * * Use a free text query to match the attributes values. Example: to search
   *   `additional_attributes = { dnsName: "foobar" }`, you can issue a query
   *   `foobar`.
   * </pre>
   *
   * <code>.google.protobuf.Struct additional_attributes = 9;</code>
   *
   * @return The additionalAttributes.
   */
  com.google.protobuf.Struct getAdditionalAttributes();
  /**
   *
   *
   * <pre>
   * The additional searchable attributes of this resource. The attributes may
   * vary from one resource type to another. Examples: `projectId` for Project,
   * `dnsName` for DNS ManagedZone. This field contains a subset of the resource
   * metadata fields that are returned by the List or Get APIs provided by the
   * corresponding Google Cloud service (e.g., Compute Engine). see [API
   * references and supported searchable
   * attributes](https://cloud.google.com/asset-inventory/docs/supported-asset-types#searchable_asset_types)
   * to see which fields are included.
   * You can search values of these fields through free text search. However,
   * you should not consume the field programically as the field names and
   * values may change as the Google Cloud service updates to a new incompatible
   * API version.
   * To search against the `additional_attributes`:
   * * Use a free text query to match the attributes values. Example: to search
   *   `additional_attributes = { dnsName: "foobar" }`, you can issue a query
   *   `foobar`.
   * </pre>
   *
   * <code>.google.protobuf.Struct additional_attributes = 9;</code>
   */
  com.google.protobuf.StructOrBuilder getAdditionalAttributesOrBuilder();

  /**
   *
   *
   * <pre>
   * The full resource name of this resource's parent, if it has one.
   * To search against the `parent_full_resource_name`:
   * * Use a field query. Example:
   * `parentFullResourceName:"project-name"`
   * * Use a free text query. Example:
   * `project-name`
   * </pre>
   *
   * <code>string parent_full_resource_name = 19;</code>
   *
   * @return The parentFullResourceName.
   */
  java.lang.String getParentFullResourceName();
  /**
   *
   *
   * <pre>
   * The full resource name of this resource's parent, if it has one.
   * To search against the `parent_full_resource_name`:
   * * Use a field query. Example:
   * `parentFullResourceName:"project-name"`
   * * Use a free text query. Example:
   * `project-name`
   * </pre>
   *
   * <code>string parent_full_resource_name = 19;</code>
   *
   * @return The bytes for parentFullResourceName.
   */
  com.google.protobuf.ByteString getParentFullResourceNameBytes();

  /**
   *
   *
   * <pre>
   * Versioned resource representations of this resource. This is repeated
   * because there could be multiple versions of resource representations during
   * version migration.
   * This `versioned_resources` field is not searchable. Some attributes of the
   * resource representations are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.VersionedResource versioned_resources = 16;</code>
   */
  java.util.List<com.google.cloud.asset.v1.VersionedResource> getVersionedResourcesList();
  /**
   *
   *
   * <pre>
   * Versioned resource representations of this resource. This is repeated
   * because there could be multiple versions of resource representations during
   * version migration.
   * This `versioned_resources` field is not searchable. Some attributes of the
   * resource representations are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.VersionedResource versioned_resources = 16;</code>
   */
  com.google.cloud.asset.v1.VersionedResource getVersionedResources(int index);
  /**
   *
   *
   * <pre>
   * Versioned resource representations of this resource. This is repeated
   * because there could be multiple versions of resource representations during
   * version migration.
   * This `versioned_resources` field is not searchable. Some attributes of the
   * resource representations are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.VersionedResource versioned_resources = 16;</code>
   */
  int getVersionedResourcesCount();
  /**
   *
   *
   * <pre>
   * Versioned resource representations of this resource. This is repeated
   * because there could be multiple versions of resource representations during
   * version migration.
   * This `versioned_resources` field is not searchable. Some attributes of the
   * resource representations are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.VersionedResource versioned_resources = 16;</code>
   */
  java.util.List<? extends com.google.cloud.asset.v1.VersionedResourceOrBuilder>
      getVersionedResourcesOrBuilderList();
  /**
   *
   *
   * <pre>
   * Versioned resource representations of this resource. This is repeated
   * because there could be multiple versions of resource representations during
   * version migration.
   * This `versioned_resources` field is not searchable. Some attributes of the
   * resource representations are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.VersionedResource versioned_resources = 16;</code>
   */
  com.google.cloud.asset.v1.VersionedResourceOrBuilder getVersionedResourcesOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * Attached resources of this resource. For example, an OSConfig
   * Inventory is an attached resource of a Compute Instance. This field is
   * repeated because a resource could have multiple attached resources.
   * This `attached_resources` field is not searchable. Some attributes
   * of the attached resources are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.AttachedResource attached_resources = 20;</code>
   */
  java.util.List<com.google.cloud.asset.v1.AttachedResource> getAttachedResourcesList();
  /**
   *
   *
   * <pre>
   * Attached resources of this resource. For example, an OSConfig
   * Inventory is an attached resource of a Compute Instance. This field is
   * repeated because a resource could have multiple attached resources.
   * This `attached_resources` field is not searchable. Some attributes
   * of the attached resources are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.AttachedResource attached_resources = 20;</code>
   */
  com.google.cloud.asset.v1.AttachedResource getAttachedResources(int index);
  /**
   *
   *
   * <pre>
   * Attached resources of this resource. For example, an OSConfig
   * Inventory is an attached resource of a Compute Instance. This field is
   * repeated because a resource could have multiple attached resources.
   * This `attached_resources` field is not searchable. Some attributes
   * of the attached resources are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.AttachedResource attached_resources = 20;</code>
   */
  int getAttachedResourcesCount();
  /**
   *
   *
   * <pre>
   * Attached resources of this resource. For example, an OSConfig
   * Inventory is an attached resource of a Compute Instance. This field is
   * repeated because a resource could have multiple attached resources.
   * This `attached_resources` field is not searchable. Some attributes
   * of the attached resources are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.AttachedResource attached_resources = 20;</code>
   */
  java.util.List<? extends com.google.cloud.asset.v1.AttachedResourceOrBuilder>
      getAttachedResourcesOrBuilderList();
  /**
   *
   *
   * <pre>
   * Attached resources of this resource. For example, an OSConfig
   * Inventory is an attached resource of a Compute Instance. This field is
   * repeated because a resource could have multiple attached resources.
   * This `attached_resources` field is not searchable. Some attributes
   * of the attached resources are exposed in `additional_attributes` field, so
   * as to allow users to search on them.
   * </pre>
   *
   * <code>repeated .google.cloud.asset.v1.AttachedResource attached_resources = 20;</code>
   */
  com.google.cloud.asset.v1.AttachedResourceOrBuilder getAttachedResourcesOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * 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).
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.asset.v1.RelatedResources&gt; relationships = 21;</code>
   */
  int getRelationshipsCount();
  /**
   *
   *
   * <pre>
   * 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).
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.asset.v1.RelatedResources&gt; relationships = 21;</code>
   */
  boolean containsRelationships(java.lang.String key);
  /** Use {@link #getRelationshipsMap()} instead. */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, com.google.cloud.asset.v1.RelatedResources> getRelationships();
  /**
   *
   *
   * <pre>
   * 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).
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.asset.v1.RelatedResources&gt; relationships = 21;</code>
   */
  java.util.Map<java.lang.String, com.google.cloud.asset.v1.RelatedResources> getRelationshipsMap();
  /**
   *
   *
   * <pre>
   * 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).
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.asset.v1.RelatedResources&gt; relationships = 21;</code>
   */
  /* nullable */
  com.google.cloud.asset.v1.RelatedResources getRelationshipsOrDefault(
      java.lang.String key,
      /* nullable */
      com.google.cloud.asset.v1.RelatedResources defaultValue);
  /**
   *
   *
   * <pre>
   * 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).
   * </pre>
   *
   * <code>map&lt;string, .google.cloud.asset.v1.RelatedResources&gt; relationships = 21;</code>
   */
  com.google.cloud.asset.v1.RelatedResources getRelationshipsOrThrow(java.lang.String key);

  /**
   *
   *
   * <pre>
   * TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.
   * To search against the `tagKeys`:
   * * Use a field query. Example:
   *     - `tagKeys:"123456789/env*"`
   *     - `tagKeys="123456789/env"`
   *     - `tagKeys:"env"`
   * * Use a free text query. Example:
   *     - `env`
   * </pre>
   *
   * <code>repeated string tag_keys = 23;</code>
   *
   * @return A list containing the tagKeys.
   */
  java.util.List<java.lang.String> getTagKeysList();
  /**
   *
   *
   * <pre>
   * TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.
   * To search against the `tagKeys`:
   * * Use a field query. Example:
   *     - `tagKeys:"123456789/env*"`
   *     - `tagKeys="123456789/env"`
   *     - `tagKeys:"env"`
   * * Use a free text query. Example:
   *     - `env`
   * </pre>
   *
   * <code>repeated string tag_keys = 23;</code>
   *
   * @return The count of tagKeys.
   */
  int getTagKeysCount();
  /**
   *
   *
   * <pre>
   * TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.
   * To search against the `tagKeys`:
   * * Use a field query. Example:
   *     - `tagKeys:"123456789/env*"`
   *     - `tagKeys="123456789/env"`
   *     - `tagKeys:"env"`
   * * Use a free text query. Example:
   *     - `env`
   * </pre>
   *
   * <code>repeated string tag_keys = 23;</code>
   *
   * @param index The index of the element to return.
   * @return The tagKeys at the given index.
   */
  java.lang.String getTagKeys(int index);
  /**
   *
   *
   * <pre>
   * TagKey namespaced names, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.
   * To search against the `tagKeys`:
   * * Use a field query. Example:
   *     - `tagKeys:"123456789/env*"`
   *     - `tagKeys="123456789/env"`
   *     - `tagKeys:"env"`
   * * Use a free text query. Example:
   *     - `env`
   * </pre>
   *
   * <code>repeated string tag_keys = 23;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the tagKeys at the given index.
   */
  com.google.protobuf.ByteString getTagKeysBytes(int index);

  /**
   *
   *
   * <pre>
   * TagValue namespaced names, in the format of
   * {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.
   * To search against the `tagValues`:
   * * Use a field query. Example:
   *     - `tagValues:"env"`
   *     - `tagValues:"env/prod"`
   *     - `tagValues:"123456789/env/prod*"`
   *     - `tagValues="123456789/env/prod"`
   * * Use a free text query. Example:
   *     - `prod`
   * </pre>
   *
   * <code>repeated string tag_values = 25;</code>
   *
   * @return A list containing the tagValues.
   */
  java.util.List<java.lang.String> getTagValuesList();
  /**
   *
   *
   * <pre>
   * TagValue namespaced names, in the format of
   * {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.
   * To search against the `tagValues`:
   * * Use a field query. Example:
   *     - `tagValues:"env"`
   *     - `tagValues:"env/prod"`
   *     - `tagValues:"123456789/env/prod*"`
   *     - `tagValues="123456789/env/prod"`
   * * Use a free text query. Example:
   *     - `prod`
   * </pre>
   *
   * <code>repeated string tag_values = 25;</code>
   *
   * @return The count of tagValues.
   */
  int getTagValuesCount();
  /**
   *
   *
   * <pre>
   * TagValue namespaced names, in the format of
   * {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.
   * To search against the `tagValues`:
   * * Use a field query. Example:
   *     - `tagValues:"env"`
   *     - `tagValues:"env/prod"`
   *     - `tagValues:"123456789/env/prod*"`
   *     - `tagValues="123456789/env/prod"`
   * * Use a free text query. Example:
   *     - `prod`
   * </pre>
   *
   * <code>repeated string tag_values = 25;</code>
   *
   * @param index The index of the element to return.
   * @return The tagValues at the given index.
   */
  java.lang.String getTagValues(int index);
  /**
   *
   *
   * <pre>
   * TagValue namespaced names, in the format of
   * {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.
   * To search against the `tagValues`:
   * * Use a field query. Example:
   *     - `tagValues:"env"`
   *     - `tagValues:"env/prod"`
   *     - `tagValues:"123456789/env/prod*"`
   *     - `tagValues="123456789/env/prod"`
   * * Use a free text query. Example:
   *     - `prod`
   * </pre>
   *
   * <code>repeated string tag_values = 25;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the tagValues at the given index.
   */
  com.google.protobuf.ByteString getTagValuesBytes(int index);

  /**
   *
   *
   * <pre>
   * TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}.
   * To search against the `tagValueIds`:
   * * Use a field query. Example:
   *     - `tagValueIds:"456"`
   *     - `tagValueIds="tagValues/456"`
   * * Use a free text query. Example:
   *     - `456`
   * </pre>
   *
   * <code>repeated string tag_value_ids = 26;</code>
   *
   * @return A list containing the tagValueIds.
   */
  java.util.List<java.lang.String> getTagValueIdsList();
  /**
   *
   *
   * <pre>
   * TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}.
   * To search against the `tagValueIds`:
   * * Use a field query. Example:
   *     - `tagValueIds:"456"`
   *     - `tagValueIds="tagValues/456"`
   * * Use a free text query. Example:
   *     - `456`
   * </pre>
   *
   * <code>repeated string tag_value_ids = 26;</code>
   *
   * @return The count of tagValueIds.
   */
  int getTagValueIdsCount();
  /**
   *
   *
   * <pre>
   * TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}.
   * To search against the `tagValueIds`:
   * * Use a field query. Example:
   *     - `tagValueIds:"456"`
   *     - `tagValueIds="tagValues/456"`
   * * Use a free text query. Example:
   *     - `456`
   * </pre>
   *
   * <code>repeated string tag_value_ids = 26;</code>
   *
   * @param index The index of the element to return.
   * @return The tagValueIds at the given index.
   */
  java.lang.String getTagValueIds(int index);
  /**
   *
   *
   * <pre>
   * TagValue IDs, in the format of tagValues/{TAG_VALUE_ID}.
   * To search against the `tagValueIds`:
   * * Use a field query. Example:
   *     - `tagValueIds:"456"`
   *     - `tagValueIds="tagValues/456"`
   * * Use a free text query. Example:
   *     - `456`
   * </pre>
   *
   * <code>repeated string tag_value_ids = 26;</code>
   *
   * @param index The index of the value to return.
   * @return The bytes of the tagValueIds at the given index.
   */
  com.google.protobuf.ByteString getTagValueIdsBytes(int index);

  /**
   *
   *
   * <pre>
   * The type of this resource's immediate parent, if there is one.
   * To search against the `parent_asset_type`:
   * * Use a field query. Example:
   * `parentAssetType:"cloudresourcemanager.googleapis.com/Project"`
   * * Use a free text query. Example:
   * `cloudresourcemanager.googleapis.com/Project`
   * </pre>
   *
   * <code>string parent_asset_type = 103;</code>
   *
   * @return The parentAssetType.
   */
  java.lang.String getParentAssetType();
  /**
   *
   *
   * <pre>
   * The type of this resource's immediate parent, if there is one.
   * To search against the `parent_asset_type`:
   * * Use a field query. Example:
   * `parentAssetType:"cloudresourcemanager.googleapis.com/Project"`
   * * Use a free text query. Example:
   * `cloudresourcemanager.googleapis.com/Project`
   * </pre>
   *
   * <code>string parent_asset_type = 103;</code>
   *
   * @return The bytes for parentAssetType.
   */
  com.google.protobuf.ByteString getParentAssetTypeBytes();
}
