public static class ListPhotosPagedResponse
    extends AbstractPagedListResponse<
        ListPhotosRequest,
        ListPhotosResponse,
        Photo,
        ListPhotosPage,
        ListPhotosFixedSizeCollection> {

  public static ApiFuture<ListPhotosPagedResponse> createAsync(
      PageContext<ListPhotosRequest, ListPhotosResponse, Photo> context,
      ApiFuture<ListPhotosResponse> futureResponse) {
    ApiFuture<ListPhotosPage> futurePage =
        ListPhotosPage.createEmptyPage().createPageAsync(context, futureResponse);
    return ApiFutures.transform(
        futurePage,
        new ApiFunction<ListPhotosPage, ListPhotosPagedResponse>() {
          @Override
          public ListPhotosPagedResponse apply(ListPhotosPage input) {
            return new ListPhotosPagedResponse(input);
          }
        });
  }

  private ListPhotosPagedResponse(ListPhotosPage page) {
    super(page, ListPhotosFixedSizeCollection.createEmptyCollection());
  }
} public static final class Photo extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.Photo)
    PhotoOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use Photo.newBuilder() to construct.
  private Photo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private Photo() {
    downloadUrl_ = "";
    thumbnailUrl_ = "";
    shareLink_ = "";
    connections_ = java.util.Collections.emptyList();
    places_ = java.util.Collections.emptyList();
    viewCount_ = 0L;
    transferStatus_ = 0;
    mapsPublishStatus_ = 0;
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private Photo(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId.Builder
                  subBuilder = null;
              if (photoId_ != null) {
                subBuilder = photoId_.toBuilder();
              }
              photoId_ =
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
                          .parser(),
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(photoId_);
                photoId_ = subBuilder.buildPartial();
              }

              break;
            }
          case 18:
            {
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                      .Builder
                  subBuilder = null;
              if (uploadReference_ != null) {
                subBuilder = uploadReference_.toBuilder();
              }
              uploadReference_ =
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                          .UploadRef.parser(),
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(uploadReference_);
                uploadReference_ = subBuilder.buildPartial();
              }

              break;
            }
          case 26:
            {
              java.lang.String s = input.readStringRequireUtf8();

              downloadUrl_ = s;
              break;
            }
          case 34:
            {
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder
                  subBuilder = null;
              if (pose_ != null) {
                subBuilder = pose_.toBuilder();
              }
              pose_ =
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose
                          .parser(),
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(pose_);
                pose_ = subBuilder.buildPartial();
              }

              break;
            }
          case 42:
            {
              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                connections_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                            .Connection>();
                mutable_bitField0_ |= 0x00000040;
              }
              connections_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                          .Connection.parser(),
                      extensionRegistry));
              break;
            }
          case 50:
            {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (captureTime_ != null) {
                subBuilder = captureTime_.toBuilder();
              }
              captureTime_ =
                  input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(captureTime_);
                captureTime_ = subBuilder.buildPartial();
              }

              break;
            }
          case 58:
            {
              if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                places_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                            .Place>();
                mutable_bitField0_ |= 0x00000100;
              }
              places_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place
                          .parser(),
                      extensionRegistry));
              break;
            }
          case 74:
            {
              java.lang.String s = input.readStringRequireUtf8();

              thumbnailUrl_ = s;
              break;
            }
          case 80:
            {
              viewCount_ = input.readInt64();
              break;
            }
          case 90:
            {
              java.lang.String s = input.readStringRequireUtf8();

              shareLink_ = s;
              break;
            }
          case 96:
            {
              int rawValue = input.readEnum();

              transferStatus_ = rawValue;
              break;
            }
          case 104:
            {
              int rawValue = input.readEnum();

              mapsPublishStatus_ = rawValue;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
        connections_ = java.util.Collections.unmodifiableList(connections_);
      }
      if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
        places_ = java.util.Collections.unmodifiableList(places_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
        .internal_static_google_streetview_publish_v1_Photo_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
        .internal_static_google_streetview_publish_v1_Photo_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
                .class);
  }

  /**
   *
   *
   * <pre>
   * Status of rights transfer.
   * </pre>
   *
   * Protobuf enum {@code google.streetview.publish.v1.Photo.TransferStatus}
   */
  public enum TransferStatus implements com.google.protobuf.ProtocolMessageEnum {
    /**
     *
     *
     * <pre>
     * The status of this transfer is unspecified.
     * </pre>
     *
     * <code>TRANSFER_STATUS_UNKNOWN = 0;</code>
     */
    TRANSFER_STATUS_UNKNOWN(0),
    /**
     *
     *
     * <pre>
     * This photo has never been in a transfer.
     * </pre>
     *
     * <code>NEVER_TRANSFERRED = 1;</code>
     */
    NEVER_TRANSFERRED(1),
    /**
     *
     *
     * <pre>
     * This photo transfer has been initiated, but the receiver has not yet
     * responded.
     * </pre>
     *
     * <code>PENDING = 2;</code>
     */
    PENDING(2),
    /**
     *
     *
     * <pre>
     * The photo transfer has been completed, and this photo has been
     * transferred to the recipient.
     * </pre>
     *
     * <code>COMPLETED = 3;</code>
     */
    COMPLETED(3),
    /**
     *
     *
     * <pre>
     * The recipient rejected this photo transfer.
     * </pre>
     *
     * <code>REJECTED = 4;</code>
     */
    REJECTED(4),
    /**
     *
     *
     * <pre>
     * The photo transfer expired before the recipient took any action.
     * </pre>
     *
     * <code>EXPIRED = 5;</code>
     */
    EXPIRED(5),
    /**
     *
     *
     * <pre>
     * The sender cancelled this photo transfer.
     * </pre>
     *
     * <code>CANCELLED = 6;</code>
     */
    CANCELLED(6),
    /**
     *
     *
     * <pre>
     * The recipient owns this photo due to a rights transfer.
     * </pre>
     *
     * <code>RECEIVED_VIA_TRANSFER = 7;</code>
     */
    RECEIVED_VIA_TRANSFER(7),
    UNRECOGNIZED(-1),
    ;

    /**
     *
     *
     * <pre>
     * The status of this transfer is unspecified.
     * </pre>
     *
     * <code>TRANSFER_STATUS_UNKNOWN = 0;</code>
     */
    public static final int TRANSFER_STATUS_UNKNOWN_VALUE = 0;
    /**
     *
     *
     * <pre>
     * This photo has never been in a transfer.
     * </pre>
     *
     * <code>NEVER_TRANSFERRED = 1;</code>
     */
    public static final int NEVER_TRANSFERRED_VALUE = 1;
    /**
     *
     *
     * <pre>
     * This photo transfer has been initiated, but the receiver has not yet
     * responded.
     * </pre>
     *
     * <code>PENDING = 2;</code>
     */
    public static final int PENDING_VALUE = 2;
    /**
     *
     *
     * <pre>
     * The photo transfer has been completed, and this photo has been
     * transferred to the recipient.
     * </pre>
     *
     * <code>COMPLETED = 3;</code>
     */
    public static final int COMPLETED_VALUE = 3;
    /**
     *
     *
     * <pre>
     * The recipient rejected this photo transfer.
     * </pre>
     *
     * <code>REJECTED = 4;</code>
     */
    public static final int REJECTED_VALUE = 4;
    /**
     *
     *
     * <pre>
     * The photo transfer expired before the recipient took any action.
     * </pre>
     *
     * <code>EXPIRED = 5;</code>
     */
    public static final int EXPIRED_VALUE = 5;
    /**
     *
     *
     * <pre>
     * The sender cancelled this photo transfer.
     * </pre>
     *
     * <code>CANCELLED = 6;</code>
     */
    public static final int CANCELLED_VALUE = 6;
    /**
     *
     *
     * <pre>
     * The recipient owns this photo due to a rights transfer.
     * </pre>
     *
     * <code>RECEIVED_VIA_TRANSFER = 7;</code>
     */
    public static final int RECEIVED_VIA_TRANSFER_VALUE = 7;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /** @deprecated Use {@link #forNumber(int)} instead. */
    @java.lang.Deprecated
    public static TransferStatus valueOf(int value) {
      return forNumber(value);
    }

    public static TransferStatus forNumber(int value) {
      switch (value) {
        case 0:
          return TRANSFER_STATUS_UNKNOWN;
        case 1:
          return NEVER_TRANSFERRED;
        case 2:
          return PENDING;
        case 3:
          return COMPLETED;
        case 4:
          return REJECTED;
        case 5:
          return EXPIRED;
        case 6:
          return CANCELLED;
        case 7:
          return RECEIVED_VIA_TRANSFER;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<TransferStatus> internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap<TransferStatus>
        internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<TransferStatus>() {
              public TransferStatus findValueByNumber(int number) {
                return TransferStatus.forNumber(number);
              }
            };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
          .getDescriptor()
          .getEnumTypes()
          .get(0);
    }

    private static final TransferStatus[] VALUES = values();

    public static TransferStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private TransferStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:google.streetview.publish.v1.Photo.TransferStatus)
  }

  /**
   *
   *
   * <pre>
   * Publication status of the photo in Google Maps.
   * </pre>
   *
   * Protobuf enum {@code google.streetview.publish.v1.Photo.MapsPublishStatus}
   */
  public enum MapsPublishStatus implements com.google.protobuf.ProtocolMessageEnum {
    /**
     *
     *
     * <pre>
     * The status of the photo is unknown.
     * </pre>
     *
     * <code>UNSPECIFIED_MAPS_PUBLISH_STATUS = 0;</code>
     */
    UNSPECIFIED_MAPS_PUBLISH_STATUS(0),
    /**
     *
     *
     * <pre>
     * The photo is published to the public through Google Maps.
     * </pre>
     *
     * <code>PUBLISHED = 1;</code>
     */
    PUBLISHED(1),
    /**
     *
     *
     * <pre>
     * The photo has been rejected for an unknown reason.
     * </pre>
     *
     * <code>REJECTED_UNKNOWN = 2;</code>
     */
    REJECTED_UNKNOWN(2),
    UNRECOGNIZED(-1),
    ;

    /**
     *
     *
     * <pre>
     * The status of the photo is unknown.
     * </pre>
     *
     * <code>UNSPECIFIED_MAPS_PUBLISH_STATUS = 0;</code>
     */
    public static final int UNSPECIFIED_MAPS_PUBLISH_STATUS_VALUE = 0;
    /**
     *
     *
     * <pre>
     * The photo is published to the public through Google Maps.
     * </pre>
     *
     * <code>PUBLISHED = 1;</code>
     */
    public static final int PUBLISHED_VALUE = 1;
    /**
     *
     *
     * <pre>
     * The photo has been rejected for an unknown reason.
     * </pre>
     *
     * <code>REJECTED_UNKNOWN = 2;</code>
     */
    public static final int REJECTED_UNKNOWN_VALUE = 2;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /** @deprecated Use {@link #forNumber(int)} instead. */
    @java.lang.Deprecated
    public static MapsPublishStatus valueOf(int value) {
      return forNumber(value);
    }

    public static MapsPublishStatus forNumber(int value) {
      switch (value) {
        case 0:
          return UNSPECIFIED_MAPS_PUBLISH_STATUS;
        case 1:
          return PUBLISHED;
        case 2:
          return REJECTED_UNKNOWN;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<MapsPublishStatus>
        internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap<MapsPublishStatus>
        internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<MapsPublishStatus>() {
              public MapsPublishStatus findValueByNumber(int number) {
                return MapsPublishStatus.forNumber(number);
              }
            };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
          .getDescriptor()
          .getEnumTypes()
          .get(1);
    }

    private static final MapsPublishStatus[] VALUES = values();

    public static MapsPublishStatus valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private MapsPublishStatus(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:google.streetview.publish.v1.Photo.MapsPublishStatus)
  }

  private int bitField0_;
  public static final int PHOTO_ID_FIELD_NUMBER = 1;
  private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId photoId_;
  /**
   *
   *
   * <pre>
   * Required when updating a photo. Output only when creating a photo.
   * Identifier for the photo, which is unique among all photos in
   * Google.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
   */
  public boolean hasPhotoId() {
    return photoId_ != null;
  }
  /**
   *
   *
   * <pre>
   * Required when updating a photo. Output only when creating a photo.
   * Identifier for the photo, which is unique among all photos in
   * Google.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
      getPhotoId() {
    return photoId_ == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
            .getDefaultInstance()
        : photoId_;
  }
  /**
   *
   *
   * <pre>
   * Required when updating a photo. Output only when creating a photo.
   * Identifier for the photo, which is unique among all photos in
   * Google.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoIdOrBuilder
      getPhotoIdOrBuilder() {
    return getPhotoId();
  }

  public static final int UPLOAD_REFERENCE_FIELD_NUMBER = 2;
  private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      uploadReference_;
  /**
   *
   *
   * <pre>
   * Required when creating a photo. Input only. The resource URL where the
   * photo bytes are uploaded to.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
   */
  public boolean hasUploadReference() {
    return uploadReference_ != null;
  }
  /**
   *
   *
   * <pre>
   * Required when creating a photo. Input only. The resource URL where the
   * photo bytes are uploaded to.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      getUploadReference() {
    return uploadReference_ == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
            .getDefaultInstance()
        : uploadReference_;
  }
  /**
   *
   *
   * <pre>
   * Required when creating a photo. Input only. The resource URL where the
   * photo bytes are uploaded to.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRefOrBuilder
      getUploadReferenceOrBuilder() {
    return getUploadReference();
  }

  public static final int DOWNLOAD_URL_FIELD_NUMBER = 3;
  private volatile java.lang.Object downloadUrl_;
  /**
   *
   *
   * <pre>
   * Output only. The download URL for the photo bytes. This field is set only
   * when
   * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
   * is set to
   * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
   * </pre>
   *
   * <code>string download_url = 3;</code>
   */
  public java.lang.String getDownloadUrl() {
    java.lang.Object ref = downloadUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      downloadUrl_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Output only. The download URL for the photo bytes. This field is set only
   * when
   * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
   * is set to
   * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
   * </pre>
   *
   * <code>string download_url = 3;</code>
   */
  public com.google.protobuf.ByteString getDownloadUrlBytes() {
    java.lang.Object ref = downloadUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      downloadUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int THUMBNAIL_URL_FIELD_NUMBER = 9;
  private volatile java.lang.Object thumbnailUrl_;
  /**
   *
   *
   * <pre>
   * Output only. The thumbnail URL for showing a preview of the given photo.
   * </pre>
   *
   * <code>string thumbnail_url = 9;</code>
   */
  public java.lang.String getThumbnailUrl() {
    java.lang.Object ref = thumbnailUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      thumbnailUrl_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Output only. The thumbnail URL for showing a preview of the given photo.
   * </pre>
   *
   * <code>string thumbnail_url = 9;</code>
   */
  public com.google.protobuf.ByteString getThumbnailUrlBytes() {
    java.lang.Object ref = thumbnailUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      thumbnailUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int SHARE_LINK_FIELD_NUMBER = 11;
  private volatile java.lang.Object shareLink_;
  /**
   *
   *
   * <pre>
   * Output only. The share link for the photo.
   * </pre>
   *
   * <code>string share_link = 11;</code>
   */
  public java.lang.String getShareLink() {
    java.lang.Object ref = shareLink_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      shareLink_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Output only. The share link for the photo.
   * </pre>
   *
   * <code>string share_link = 11;</code>
   */
  public com.google.protobuf.ByteString getShareLinkBytes() {
    java.lang.Object ref = shareLink_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      shareLink_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int POSE_FIELD_NUMBER = 4;
  private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose pose_;
  /**
   *
   *
   * <pre>
   * Pose of the photo.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
   */
  public boolean hasPose() {
    return pose_ != null;
  }
  /**
   *
   *
   * <pre>
   * Pose of the photo.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose getPose() {
    return pose_ == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose
            .getDefaultInstance()
        : pose_;
  }
  /**
   *
   *
   * <pre>
   * Pose of the photo.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PoseOrBuilder
      getPoseOrBuilder() {
    return getPose();
  }

  public static final int CONNECTIONS_FIELD_NUMBER = 5;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection>
      connections_;
  /**
   *
   *
   * <pre>
   * Connections to other photos. A connection represents the link from this
   * photo to another photo.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
   */
  public java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection>
      getConnectionsList() {
    return connections_;
  }
  /**
   *
   *
   * <pre>
   * Connections to other photos. A connection represents the link from this
   * photo to another photo.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                  .ConnectionOrBuilder>
      getConnectionsOrBuilderList() {
    return connections_;
  }
  /**
   *
   *
   * <pre>
   * Connections to other photos. A connection represents the link from this
   * photo to another photo.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
   */
  public int getConnectionsCount() {
    return connections_.size();
  }
  /**
   *
   *
   * <pre>
   * Connections to other photos. A connection represents the link from this
   * photo to another photo.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
      getConnections(int index) {
    return connections_.get(index);
  }
  /**
   *
   *
   * <pre>
   * Connections to other photos. A connection represents the link from this
   * photo to another photo.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.ConnectionOrBuilder
      getConnectionsOrBuilder(int index) {
    return connections_.get(index);
  }

  public static final int CAPTURE_TIME_FIELD_NUMBER = 6;
  private com.google.protobuf.Timestamp captureTime_;
  /**
   *
   *
   * <pre>
   * Absolute time when the photo was captured.
   * When the photo has no exif timestamp, this is used to set a timestamp in
   * the photo metadata.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp capture_time = 6;</code>
   */
  public boolean hasCaptureTime() {
    return captureTime_ != null;
  }
  /**
   *
   *
   * <pre>
   * Absolute time when the photo was captured.
   * When the photo has no exif timestamp, this is used to set a timestamp in
   * the photo metadata.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp capture_time = 6;</code>
   */
  public com.google.protobuf.Timestamp getCaptureTime() {
    return captureTime_ == null
        ? com.google.protobuf.Timestamp.getDefaultInstance()
        : captureTime_;
  }
  /**
   *
   *
   * <pre>
   * Absolute time when the photo was captured.
   * When the photo has no exif timestamp, this is used to set a timestamp in
   * the photo metadata.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp capture_time = 6;</code>
   */
  public com.google.protobuf.TimestampOrBuilder getCaptureTimeOrBuilder() {
    return getCaptureTime();
  }

  public static final int PLACES_FIELD_NUMBER = 7;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>
      places_;
  /**
   *
   *
   * <pre>
   * Places where this photo belongs.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
   */
  public java.util.List<com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>
      getPlacesList() {
    return places_;
  }
  /**
   *
   *
   * <pre>
   * Places where this photo belongs.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PlaceOrBuilder>
      getPlacesOrBuilderList() {
    return places_;
  }
  /**
   *
   *
   * <pre>
   * Places where this photo belongs.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
   */
  public int getPlacesCount() {
    return places_.size();
  }
  /**
   *
   *
   * <pre>
   * Places where this photo belongs.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place getPlaces(
      int index) {
    return places_.get(index);
  }
  /**
   *
   *
   * <pre>
   * Places where this photo belongs.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PlaceOrBuilder
      getPlacesOrBuilder(int index) {
    return places_.get(index);
  }

  public static final int VIEW_COUNT_FIELD_NUMBER = 10;
  private long viewCount_;
  /**
   *
   *
   * <pre>
   * Output only. View count of the photo.
   * </pre>
   *
   * <code>int64 view_count = 10;</code>
   */
  public long getViewCount() {
    return viewCount_;
  }

  public static final int TRANSFER_STATUS_FIELD_NUMBER = 12;
  private int transferStatus_;
  /**
   *
   *
   * <pre>
   * Output only. Status of rights transfer on this photo.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
   */
  public int getTransferStatusValue() {
    return transferStatus_;
  }
  /**
   *
   *
   * <pre>
   * Output only. Status of rights transfer on this photo.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.TransferStatus
      getTransferStatus() {
    @SuppressWarnings("deprecation")
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.TransferStatus
        result =
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .TransferStatus.valueOf(transferStatus_);
    return result == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.TransferStatus
            .UNRECOGNIZED
        : result;
  }

  public static final int MAPS_PUBLISH_STATUS_FIELD_NUMBER = 13;
  private int mapsPublishStatus_;
  /**
   *
   *
   * <pre>
   * Output only. Status in Google Maps, whether this photo was published or
   * rejected.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;</code>
   */
  public int getMapsPublishStatusValue() {
    return mapsPublishStatus_;
  }
  /**
   *
   *
   * <pre>
   * Output only. Status in Google Maps, whether this photo was published or
   * rejected.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
          .MapsPublishStatus
      getMapsPublishStatus() {
    @SuppressWarnings("deprecation")
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.MapsPublishStatus
        result =
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .MapsPublishStatus.valueOf(mapsPublishStatus_);
    return result == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .MapsPublishStatus.UNRECOGNIZED
        : result;
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (photoId_ != null) {
      output.writeMessage(1, getPhotoId());
    }
    if (uploadReference_ != null) {
      output.writeMessage(2, getUploadReference());
    }
    if (!getDownloadUrlBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, downloadUrl_);
    }
    if (pose_ != null) {
      output.writeMessage(4, getPose());
    }
    for (int i = 0; i < connections_.size(); i++) {
      output.writeMessage(5, connections_.get(i));
    }
    if (captureTime_ != null) {
      output.writeMessage(6, getCaptureTime());
    }
    for (int i = 0; i < places_.size(); i++) {
      output.writeMessage(7, places_.get(i));
    }
    if (!getThumbnailUrlBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 9, thumbnailUrl_);
    }
    if (viewCount_ != 0L) {
      output.writeInt64(10, viewCount_);
    }
    if (!getShareLinkBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 11, shareLink_);
    }
    if (transferStatus_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .TransferStatus.TRANSFER_STATUS_UNKNOWN.getNumber()) {
      output.writeEnum(12, transferStatus_);
    }
    if (mapsPublishStatus_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .MapsPublishStatus.UNSPECIFIED_MAPS_PUBLISH_STATUS.getNumber()) {
      output.writeEnum(13, mapsPublishStatus_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (photoId_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPhotoId());
    }
    if (uploadReference_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUploadReference());
    }
    if (!getDownloadUrlBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, downloadUrl_);
    }
    if (pose_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getPose());
    }
    for (int i = 0; i < connections_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, connections_.get(i));
    }
    if (captureTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getCaptureTime());
    }
    for (int i = 0; i < places_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, places_.get(i));
    }
    if (!getThumbnailUrlBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, thumbnailUrl_);
    }
    if (viewCount_ != 0L) {
      size += com.google.protobuf.CodedOutputStream.computeInt64Size(10, viewCount_);
    }
    if (!getShareLinkBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, shareLink_);
    }
    if (transferStatus_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .TransferStatus.TRANSFER_STATUS_UNKNOWN.getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(12, transferStatus_);
    }
    if (mapsPublishStatus_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .MapsPublishStatus.UNSPECIFIED_MAPS_PUBLISH_STATUS.getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(13, mapsPublishStatus_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo other =
        (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo) obj;

    boolean result = true;
    result = result && (hasPhotoId() == other.hasPhotoId());
    if (hasPhotoId()) {
      result = result && getPhotoId().equals(other.getPhotoId());
    }
    result = result && (hasUploadReference() == other.hasUploadReference());
    if (hasUploadReference()) {
      result = result && getUploadReference().equals(other.getUploadReference());
    }
    result = result && getDownloadUrl().equals(other.getDownloadUrl());
    result = result && getThumbnailUrl().equals(other.getThumbnailUrl());
    result = result && getShareLink().equals(other.getShareLink());
    result = result && (hasPose() == other.hasPose());
    if (hasPose()) {
      result = result && getPose().equals(other.getPose());
    }
    result = result && getConnectionsList().equals(other.getConnectionsList());
    result = result && (hasCaptureTime() == other.hasCaptureTime());
    if (hasCaptureTime()) {
      result = result && getCaptureTime().equals(other.getCaptureTime());
    }
    result = result && getPlacesList().equals(other.getPlacesList());
    result = result && (getViewCount() == other.getViewCount());
    result = result && transferStatus_ == other.transferStatus_;
    result = result && mapsPublishStatus_ == other.mapsPublishStatus_;
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasPhotoId()) {
      hash = (37 * hash) + PHOTO_ID_FIELD_NUMBER;
      hash = (53 * hash) + getPhotoId().hashCode();
    }
    if (hasUploadReference()) {
      hash = (37 * hash) + UPLOAD_REFERENCE_FIELD_NUMBER;
      hash = (53 * hash) + getUploadReference().hashCode();
    }
    hash = (37 * hash) + DOWNLOAD_URL_FIELD_NUMBER;
    hash = (53 * hash) + getDownloadUrl().hashCode();
    hash = (37 * hash) + THUMBNAIL_URL_FIELD_NUMBER;
    hash = (53 * hash) + getThumbnailUrl().hashCode();
    hash = (37 * hash) + SHARE_LINK_FIELD_NUMBER;
    hash = (53 * hash) + getShareLink().hashCode();
    if (hasPose()) {
      hash = (37 * hash) + POSE_FIELD_NUMBER;
      hash = (53 * hash) + getPose().hashCode();
    }
    if (getConnectionsCount() > 0) {
      hash = (37 * hash) + CONNECTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getConnectionsList().hashCode();
    }
    if (hasCaptureTime()) {
      hash = (37 * hash) + CAPTURE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getCaptureTime().hashCode();
    }
    if (getPlacesCount() > 0) {
      hash = (37 * hash) + PLACES_FIELD_NUMBER;
      hash = (53 * hash) + getPlacesList().hashCode();
    }
    hash = (37 * hash) + VIEW_COUNT_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getViewCount());
    hash = (37 * hash) + TRANSFER_STATUS_FIELD_NUMBER;
    hash = (53 * hash) + transferStatus_;
    hash = (37 * hash) + MAPS_PUBLISH_STATUS_FIELD_NUMBER;
    hash = (53 * hash) + mapsPublishStatus_;
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Photo is used to store 360 photos along with photo metadata.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.Photo}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.Photo)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_Photo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_Photo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
                  .class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getConnectionsFieldBuilder();
        getPlacesFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (photoIdBuilder_ == null) {
        photoId_ = null;
      } else {
        photoId_ = null;
        photoIdBuilder_ = null;
      }
      if (uploadReferenceBuilder_ == null) {
        uploadReference_ = null;
      } else {
        uploadReference_ = null;
        uploadReferenceBuilder_ = null;
      }
      downloadUrl_ = "";

      thumbnailUrl_ = "";

      shareLink_ = "";

      if (poseBuilder_ == null) {
        pose_ = null;
      } else {
        pose_ = null;
        poseBuilder_ = null;
      }
      if (connectionsBuilder_ == null) {
        connections_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
      } else {
        connectionsBuilder_.clear();
      }
      if (captureTimeBuilder_ == null) {
        captureTime_ = null;
      } else {
        captureTime_ = null;
        captureTimeBuilder_ = null;
      }
      if (placesBuilder_ == null) {
        places_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000100);
      } else {
        placesBuilder_.clear();
      }
      viewCount_ = 0L;

      transferStatus_ = 0;

      mapsPublishStatus_ = 0;

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_Photo_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
          .getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo result =
          buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo result =
          new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo(this);
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (photoIdBuilder_ == null) {
        result.photoId_ = photoId_;
      } else {
        result.photoId_ = photoIdBuilder_.build();
      }
      if (uploadReferenceBuilder_ == null) {
        result.uploadReference_ = uploadReference_;
      } else {
        result.uploadReference_ = uploadReferenceBuilder_.build();
      }
      result.downloadUrl_ = downloadUrl_;
      result.thumbnailUrl_ = thumbnailUrl_;
      result.shareLink_ = shareLink_;
      if (poseBuilder_ == null) {
        result.pose_ = pose_;
      } else {
        result.pose_ = poseBuilder_.build();
      }
      if (connectionsBuilder_ == null) {
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          connections_ = java.util.Collections.unmodifiableList(connections_);
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.connections_ = connections_;
      } else {
        result.connections_ = connectionsBuilder_.build();
      }
      if (captureTimeBuilder_ == null) {
        result.captureTime_ = captureTime_;
      } else {
        result.captureTime_ = captureTimeBuilder_.build();
      }
      if (placesBuilder_ == null) {
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          places_ = java.util.Collections.unmodifiableList(places_);
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.places_ = places_;
      } else {
        result.places_ = placesBuilder_.build();
      }
      result.viewCount_ = viewCount_;
      result.transferStatus_ = transferStatus_;
      result.mapsPublishStatus_ = mapsPublishStatus_;
      result.bitField0_ = to_bitField0_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
              .getDefaultInstance()) return this;
      if (other.hasPhotoId()) {
        mergePhotoId(other.getPhotoId());
      }
      if (other.hasUploadReference()) {
        mergeUploadReference(other.getUploadReference());
      }
      if (!other.getDownloadUrl().isEmpty()) {
        downloadUrl_ = other.downloadUrl_;
        onChanged();
      }
      if (!other.getThumbnailUrl().isEmpty()) {
        thumbnailUrl_ = other.thumbnailUrl_;
        onChanged();
      }
      if (!other.getShareLink().isEmpty()) {
        shareLink_ = other.shareLink_;
        onChanged();
      }
      if (other.hasPose()) {
        mergePose(other.getPose());
      }
      if (connectionsBuilder_ == null) {
        if (!other.connections_.isEmpty()) {
          if (connections_.isEmpty()) {
            connections_ = other.connections_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureConnectionsIsMutable();
            connections_.addAll(other.connections_);
          }
          onChanged();
        }
      } else {
        if (!other.connections_.isEmpty()) {
          if (connectionsBuilder_.isEmpty()) {
            connectionsBuilder_.dispose();
            connectionsBuilder_ = null;
            connections_ = other.connections_;
            bitField0_ = (bitField0_ & ~0x00000040);
            connectionsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getConnectionsFieldBuilder()
                    : null;
          } else {
            connectionsBuilder_.addAllMessages(other.connections_);
          }
        }
      }
      if (other.hasCaptureTime()) {
        mergeCaptureTime(other.getCaptureTime());
      }
      if (placesBuilder_ == null) {
        if (!other.places_.isEmpty()) {
          if (places_.isEmpty()) {
            places_ = other.places_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensurePlacesIsMutable();
            places_.addAll(other.places_);
          }
          onChanged();
        }
      } else {
        if (!other.places_.isEmpty()) {
          if (placesBuilder_.isEmpty()) {
            placesBuilder_.dispose();
            placesBuilder_ = null;
            places_ = other.places_;
            bitField0_ = (bitField0_ & ~0x00000100);
            placesBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getPlacesFieldBuilder()
                    : null;
          } else {
            placesBuilder_.addAllMessages(other.places_);
          }
        }
      }
      if (other.getViewCount() != 0L) {
        setViewCount(other.getViewCount());
      }
      if (other.transferStatus_ != 0) {
        setTransferStatusValue(other.getTransferStatusValue());
      }
      if (other.mapsPublishStatus_ != 0) {
        setMapsPublishStatusValue(other.getMapsPublishStatusValue());
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo parsedMessage =
          null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId photoId_ =
        null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoIdOrBuilder>
        photoIdBuilder_;
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public boolean hasPhotoId() {
      return photoIdBuilder_ != null || photoId_ != null;
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
        getPhotoId() {
      if (photoIdBuilder_ == null) {
        return photoId_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
                .getDefaultInstance()
            : photoId_;
      } else {
        return photoIdBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public Builder setPhotoId(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId value) {
      if (photoIdBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        photoId_ = value;
        onChanged();
      } else {
        photoIdBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public Builder setPhotoId(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId.Builder
            builderForValue) {
      if (photoIdBuilder_ == null) {
        photoId_ = builderForValue.build();
        onChanged();
      } else {
        photoIdBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public Builder mergePhotoId(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId value) {
      if (photoIdBuilder_ == null) {
        if (photoId_ != null) {
          photoId_ =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
                  .newBuilder(photoId_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          photoId_ = value;
        }
        onChanged();
      } else {
        photoIdBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public Builder clearPhotoId() {
      if (photoIdBuilder_ == null) {
        photoId_ = null;
        onChanged();
      } else {
        photoId_ = null;
        photoIdBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId.Builder
        getPhotoIdBuilder() {

      onChanged();
      return getPhotoIdFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoIdOrBuilder
        getPhotoIdOrBuilder() {
      if (photoIdBuilder_ != null) {
        return photoIdBuilder_.getMessageOrBuilder();
      } else {
        return photoId_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
                .getDefaultInstance()
            : photoId_;
      }
    }
    /**
     *
     *
     * <pre>
     * Required when updating a photo. Output only when creating a photo.
     * Identifier for the photo, which is unique among all photos in
     * Google.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoId photo_id = 1;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoIdOrBuilder>
        getPhotoIdFieldBuilder() {
      if (photoIdBuilder_ == null) {
        photoIdBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoId
                    .Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PhotoIdOrBuilder>(getPhotoId(), getParentForChildren(), isClean());
        photoId_ = null;
      }
      return photoIdBuilder_;
    }

    private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
        uploadReference_ = null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                .UploadRefOrBuilder>
        uploadReferenceBuilder_;
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public boolean hasUploadReference() {
      return uploadReferenceBuilder_ != null || uploadReference_ != null;
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
        getUploadReference() {
      if (uploadReferenceBuilder_ == null) {
        return uploadReference_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                .getDefaultInstance()
            : uploadReference_;
      } else {
        return uploadReferenceBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public Builder setUploadReference(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef value) {
      if (uploadReferenceBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        uploadReference_ = value;
        onChanged();
      } else {
        uploadReferenceBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public Builder setUploadReference(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.Builder
            builderForValue) {
      if (uploadReferenceBuilder_ == null) {
        uploadReference_ = builderForValue.build();
        onChanged();
      } else {
        uploadReferenceBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public Builder mergeUploadReference(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef value) {
      if (uploadReferenceBuilder_ == null) {
        if (uploadReference_ != null) {
          uploadReference_ =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                  .newBuilder(uploadReference_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          uploadReference_ = value;
        }
        onChanged();
      } else {
        uploadReferenceBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public Builder clearUploadReference() {
      if (uploadReferenceBuilder_ == null) {
        uploadReference_ = null;
        onChanged();
      } else {
        uploadReference_ = null;
        uploadReferenceBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.Builder
        getUploadReferenceBuilder() {

      onChanged();
      return getUploadReferenceFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRefOrBuilder
        getUploadReferenceOrBuilder() {
      if (uploadReferenceBuilder_ != null) {
        return uploadReferenceBuilder_.getMessageOrBuilder();
      } else {
        return uploadReference_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                .getDefaultInstance()
            : uploadReference_;
      }
    }
    /**
     *
     *
     * <pre>
     * Required when creating a photo. Input only. The resource URL where the
     * photo bytes are uploaded to.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.UploadRef upload_reference = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                .UploadRefOrBuilder>
        getUploadReferenceFieldBuilder() {
      if (uploadReferenceBuilder_ == null) {
        uploadReferenceBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                    .Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .UploadRefOrBuilder>(getUploadReference(), getParentForChildren(), isClean());
        uploadReference_ = null;
      }
      return uploadReferenceBuilder_;
    }

    private java.lang.Object downloadUrl_ = "";
    /**
     *
     *
     * <pre>
     * Output only. The download URL for the photo bytes. This field is set only
     * when
     * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
     * is set to
     * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
     * </pre>
     *
     * <code>string download_url = 3;</code>
     */
    public java.lang.String getDownloadUrl() {
      java.lang.Object ref = downloadUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        downloadUrl_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The download URL for the photo bytes. This field is set only
     * when
     * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
     * is set to
     * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
     * </pre>
     *
     * <code>string download_url = 3;</code>
     */
    public com.google.protobuf.ByteString getDownloadUrlBytes() {
      java.lang.Object ref = downloadUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        downloadUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The download URL for the photo bytes. This field is set only
     * when
     * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
     * is set to
     * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
     * </pre>
     *
     * <code>string download_url = 3;</code>
     */
    public Builder setDownloadUrl(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      downloadUrl_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The download URL for the photo bytes. This field is set only
     * when
     * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
     * is set to
     * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
     * </pre>
     *
     * <code>string download_url = 3;</code>
     */
    public Builder clearDownloadUrl() {

      downloadUrl_ = getDefaultInstance().getDownloadUrl();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The download URL for the photo bytes. This field is set only
     * when
     * [GetPhotoRequest.view][google.streetview.publish.v1.GetPhotoRequest.view]
     * is set to
     * [PhotoView.INCLUDE_DOWNLOAD_URL][google.streetview.publish.v1.PhotoView.INCLUDE_DOWNLOAD_URL].
     * </pre>
     *
     * <code>string download_url = 3;</code>
     */
    public Builder setDownloadUrlBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      downloadUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object thumbnailUrl_ = "";
    /**
     *
     *
     * <pre>
     * Output only. The thumbnail URL for showing a preview of the given photo.
     * </pre>
     *
     * <code>string thumbnail_url = 9;</code>
     */
    public java.lang.String getThumbnailUrl() {
      java.lang.Object ref = thumbnailUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        thumbnailUrl_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The thumbnail URL for showing a preview of the given photo.
     * </pre>
     *
     * <code>string thumbnail_url = 9;</code>
     */
    public com.google.protobuf.ByteString getThumbnailUrlBytes() {
      java.lang.Object ref = thumbnailUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        thumbnailUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The thumbnail URL for showing a preview of the given photo.
     * </pre>
     *
     * <code>string thumbnail_url = 9;</code>
     */
    public Builder setThumbnailUrl(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      thumbnailUrl_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The thumbnail URL for showing a preview of the given photo.
     * </pre>
     *
     * <code>string thumbnail_url = 9;</code>
     */
    public Builder clearThumbnailUrl() {

      thumbnailUrl_ = getDefaultInstance().getThumbnailUrl();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The thumbnail URL for showing a preview of the given photo.
     * </pre>
     *
     * <code>string thumbnail_url = 9;</code>
     */
    public Builder setThumbnailUrlBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      thumbnailUrl_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object shareLink_ = "";
    /**
     *
     *
     * <pre>
     * Output only. The share link for the photo.
     * </pre>
     *
     * <code>string share_link = 11;</code>
     */
    public java.lang.String getShareLink() {
      java.lang.Object ref = shareLink_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        shareLink_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The share link for the photo.
     * </pre>
     *
     * <code>string share_link = 11;</code>
     */
    public com.google.protobuf.ByteString getShareLinkBytes() {
      java.lang.Object ref = shareLink_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        shareLink_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Output only. The share link for the photo.
     * </pre>
     *
     * <code>string share_link = 11;</code>
     */
    public Builder setShareLink(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      shareLink_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The share link for the photo.
     * </pre>
     *
     * <code>string share_link = 11;</code>
     */
    public Builder clearShareLink() {

      shareLink_ = getDefaultInstance().getShareLink();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. The share link for the photo.
     * </pre>
     *
     * <code>string share_link = 11;</code>
     */
    public Builder setShareLinkBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      shareLink_ = value;
      onChanged();
      return this;
    }

    private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose pose_ = null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PoseOrBuilder>
        poseBuilder_;
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public boolean hasPose() {
      return poseBuilder_ != null || pose_ != null;
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose getPose() {
      if (poseBuilder_ == null) {
        return pose_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose
                .getDefaultInstance()
            : pose_;
      } else {
        return poseBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public Builder setPose(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose value) {
      if (poseBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        pose_ = value;
        onChanged();
      } else {
        poseBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public Builder setPose(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder
            builderForValue) {
      if (poseBuilder_ == null) {
        pose_ = builderForValue.build();
        onChanged();
      } else {
        poseBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public Builder mergePose(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose value) {
      if (poseBuilder_ == null) {
        if (pose_ != null) {
          pose_ =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.newBuilder(
                      pose_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          pose_ = value;
        }
        onChanged();
      } else {
        poseBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public Builder clearPose() {
      if (poseBuilder_ == null) {
        pose_ = null;
        onChanged();
      } else {
        pose_ = null;
        poseBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder
        getPoseBuilder() {

      onChanged();
      return getPoseFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PoseOrBuilder
        getPoseOrBuilder() {
      if (poseBuilder_ != null) {
        return poseBuilder_.getMessageOrBuilder();
      } else {
        return pose_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose
                .getDefaultInstance()
            : pose_;
      }
    }
    /**
     *
     *
     * <pre>
     * Pose of the photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Pose pose = 4;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PoseOrBuilder>
        getPoseFieldBuilder() {
      if (poseBuilder_ == null) {
        poseBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Pose.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PoseOrBuilder>(getPose(), getParentForChildren(), isClean());
        pose_ = null;
      }
      return poseBuilder_;
    }

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection>
        connections_ = java.util.Collections.emptyList();

    private void ensureConnectionsIsMutable() {
      if (!((bitField0_ & 0x00000040) == 0x00000040)) {
        connections_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection>(
                connections_);
        bitField0_ |= 0x00000040;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                .ConnectionOrBuilder>
        connectionsBuilder_;

    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection>
        getConnectionsList() {
      if (connectionsBuilder_ == null) {
        return java.util.Collections.unmodifiableList(connections_);
      } else {
        return connectionsBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public int getConnectionsCount() {
      if (connectionsBuilder_ == null) {
        return connections_.size();
      } else {
        return connectionsBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
        getConnections(int index) {
      if (connectionsBuilder_ == null) {
        return connections_.get(index);
      } else {
        return connectionsBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder setConnections(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection value) {
      if (connectionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConnectionsIsMutable();
        connections_.set(index, value);
        onChanged();
      } else {
        connectionsBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder setConnections(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
            builderForValue) {
      if (connectionsBuilder_ == null) {
        ensureConnectionsIsMutable();
        connections_.set(index, builderForValue.build());
        onChanged();
      } else {
        connectionsBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder addConnections(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection value) {
      if (connectionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConnectionsIsMutable();
        connections_.add(value);
        onChanged();
      } else {
        connectionsBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder addConnections(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection value) {
      if (connectionsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureConnectionsIsMutable();
        connections_.add(index, value);
        onChanged();
      } else {
        connectionsBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder addConnections(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
            builderForValue) {
      if (connectionsBuilder_ == null) {
        ensureConnectionsIsMutable();
        connections_.add(builderForValue.build());
        onChanged();
      } else {
        connectionsBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder addConnections(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
            builderForValue) {
      if (connectionsBuilder_ == null) {
        ensureConnectionsIsMutable();
        connections_.add(index, builderForValue.build());
        onChanged();
      } else {
        connectionsBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder addAllConnections(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                        .Connection>
            values) {
      if (connectionsBuilder_ == null) {
        ensureConnectionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, connections_);
        onChanged();
      } else {
        connectionsBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder clearConnections() {
      if (connectionsBuilder_ == null) {
        connections_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
      } else {
        connectionsBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public Builder removeConnections(int index) {
      if (connectionsBuilder_ == null) {
        ensureConnectionsIsMutable();
        connections_.remove(index);
        onChanged();
      } else {
        connectionsBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
        getConnectionsBuilder(int index) {
      return getConnectionsFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.ConnectionOrBuilder
        getConnectionsOrBuilder(int index) {
      if (connectionsBuilder_ == null) {
        return connections_.get(index);
      } else {
        return connectionsBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .ConnectionOrBuilder>
        getConnectionsOrBuilderList() {
      if (connectionsBuilder_ != null) {
        return connectionsBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(connections_);
      }
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
        addConnectionsBuilder() {
      return getConnectionsFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection.Builder
        addConnectionsBuilder(int index) {
      return getConnectionsFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Connections to other photos. A connection represents the link from this
     * photo to another photo.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Connection connections = 5;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                .Builder>
        getConnectionsBuilderList() {
      return getConnectionsFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                .ConnectionOrBuilder>
        getConnectionsFieldBuilder() {
      if (connectionsBuilder_ == null) {
        connectionsBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Connection
                    .Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .ConnectionOrBuilder>(
                connections_,
                ((bitField0_ & 0x00000040) == 0x00000040),
                getParentForChildren(),
                isClean());
        connections_ = null;
      }
      return connectionsBuilder_;
    }

    private com.google.protobuf.Timestamp captureTime_ = null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        captureTimeBuilder_;
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public boolean hasCaptureTime() {
      return captureTimeBuilder_ != null || captureTime_ != null;
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public com.google.protobuf.Timestamp getCaptureTime() {
      if (captureTimeBuilder_ == null) {
        return captureTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : captureTime_;
      } else {
        return captureTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public Builder setCaptureTime(com.google.protobuf.Timestamp value) {
      if (captureTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        captureTime_ = value;
        onChanged();
      } else {
        captureTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public Builder setCaptureTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (captureTimeBuilder_ == null) {
        captureTime_ = builderForValue.build();
        onChanged();
      } else {
        captureTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public Builder mergeCaptureTime(com.google.protobuf.Timestamp value) {
      if (captureTimeBuilder_ == null) {
        if (captureTime_ != null) {
          captureTime_ =
              com.google.protobuf.Timestamp.newBuilder(captureTime_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          captureTime_ = value;
        }
        onChanged();
      } else {
        captureTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public Builder clearCaptureTime() {
      if (captureTimeBuilder_ == null) {
        captureTime_ = null;
        onChanged();
      } else {
        captureTime_ = null;
        captureTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public com.google.protobuf.Timestamp.Builder getCaptureTimeBuilder() {

      onChanged();
      return getCaptureTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    public com.google.protobuf.TimestampOrBuilder getCaptureTimeOrBuilder() {
      if (captureTimeBuilder_ != null) {
        return captureTimeBuilder_.getMessageOrBuilder();
      } else {
        return captureTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : captureTime_;
      }
    }
    /**
     *
     *
     * <pre>
     * Absolute time when the photo was captured.
     * When the photo has no exif timestamp, this is used to set a timestamp in
     * the photo metadata.
     * </pre>
     *
     * <code>.google.protobuf.Timestamp capture_time = 6;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getCaptureTimeFieldBuilder() {
      if (captureTimeBuilder_ == null) {
        captureTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getCaptureTime(), getParentForChildren(), isClean());
        captureTime_ = null;
      }
      return captureTimeBuilder_;
    }

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>
        places_ = java.util.Collections.emptyList();

    private void ensurePlacesIsMutable() {
      if (!((bitField0_ & 0x00000100) == 0x00000100)) {
        places_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>(
                places_);
        bitField0_ |= 0x00000100;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PlaceOrBuilder>
        placesBuilder_;

    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>
        getPlacesList() {
      if (placesBuilder_ == null) {
        return java.util.Collections.unmodifiableList(places_);
      } else {
        return placesBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public int getPlacesCount() {
      if (placesBuilder_ == null) {
        return places_.size();
      } else {
        return placesBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place getPlaces(
        int index) {
      if (placesBuilder_ == null) {
        return places_.get(index);
      } else {
        return placesBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder setPlaces(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place value) {
      if (placesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlacesIsMutable();
        places_.set(index, value);
        onChanged();
      } else {
        placesBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder setPlaces(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
            builderForValue) {
      if (placesBuilder_ == null) {
        ensurePlacesIsMutable();
        places_.set(index, builderForValue.build());
        onChanged();
      } else {
        placesBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder addPlaces(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place value) {
      if (placesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlacesIsMutable();
        places_.add(value);
        onChanged();
      } else {
        placesBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder addPlaces(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place value) {
      if (placesBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePlacesIsMutable();
        places_.add(index, value);
        onChanged();
      } else {
        placesBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder addPlaces(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
            builderForValue) {
      if (placesBuilder_ == null) {
        ensurePlacesIsMutable();
        places_.add(builderForValue.build());
        onChanged();
      } else {
        placesBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder addPlaces(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
            builderForValue) {
      if (placesBuilder_ == null) {
        ensurePlacesIsMutable();
        places_.add(index, builderForValue.build());
        onChanged();
      } else {
        placesBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder addAllPlaces(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place>
            values) {
      if (placesBuilder_ == null) {
        ensurePlacesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, places_);
        onChanged();
      } else {
        placesBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder clearPlaces() {
      if (placesBuilder_ == null) {
        places_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
      } else {
        placesBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public Builder removePlaces(int index) {
      if (placesBuilder_ == null) {
        ensurePlacesIsMutable();
        places_.remove(index);
        onChanged();
      } else {
        placesBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
        getPlacesBuilder(int index) {
      return getPlacesFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PlaceOrBuilder
        getPlacesOrBuilder(int index) {
      if (placesBuilder_ == null) {
        return places_.get(index);
      } else {
        return placesBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PlaceOrBuilder>
        getPlacesOrBuilderList() {
      if (placesBuilder_ != null) {
        return placesBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(places_);
      }
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
        addPlacesBuilder() {
      return getPlacesFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder
        addPlacesBuilder(int index) {
      return getPlacesFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Places where this photo belongs.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Place places = 7;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder>
        getPlacesBuilderList() {
      return getPlacesFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PlaceOrBuilder>
        getPlacesFieldBuilder() {
      if (placesBuilder_ == null) {
        placesBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Place.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PlaceOrBuilder>(
                places_,
                ((bitField0_ & 0x00000100) == 0x00000100),
                getParentForChildren(),
                isClean());
        places_ = null;
      }
      return placesBuilder_;
    }

    private long viewCount_;
    /**
     *
     *
     * <pre>
     * Output only. View count of the photo.
     * </pre>
     *
     * <code>int64 view_count = 10;</code>
     */
    public long getViewCount() {
      return viewCount_;
    }
    /**
     *
     *
     * <pre>
     * Output only. View count of the photo.
     * </pre>
     *
     * <code>int64 view_count = 10;</code>
     */
    public Builder setViewCount(long value) {

      viewCount_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. View count of the photo.
     * </pre>
     *
     * <code>int64 view_count = 10;</code>
     */
    public Builder clearViewCount() {

      viewCount_ = 0L;
      onChanged();
      return this;
    }

    private int transferStatus_ = 0;
    /**
     *
     *
     * <pre>
     * Output only. Status of rights transfer on this photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
     */
    public int getTransferStatusValue() {
      return transferStatus_;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status of rights transfer on this photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
     */
    public Builder setTransferStatusValue(int value) {
      transferStatus_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status of rights transfer on this photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .TransferStatus
        getTransferStatus() {
      @SuppressWarnings("deprecation")
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.TransferStatus
          result =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .TransferStatus.valueOf(transferStatus_);
      return result == null
          ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
              .TransferStatus.UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status of rights transfer on this photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
     */
    public Builder setTransferStatus(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.TransferStatus
            value) {
      if (value == null) {
        throw new NullPointerException();
      }

      transferStatus_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status of rights transfer on this photo.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.TransferStatus transfer_status = 12;</code>
     */
    public Builder clearTransferStatus() {

      transferStatus_ = 0;
      onChanged();
      return this;
    }

    private int mapsPublishStatus_ = 0;
    /**
     *
     *
     * <pre>
     * Output only. Status in Google Maps, whether this photo was published or
     * rejected.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;
     * </code>
     */
    public int getMapsPublishStatusValue() {
      return mapsPublishStatus_;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status in Google Maps, whether this photo was published or
     * rejected.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;
     * </code>
     */
    public Builder setMapsPublishStatusValue(int value) {
      mapsPublishStatus_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status in Google Maps, whether this photo was published or
     * rejected.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .MapsPublishStatus
        getMapsPublishStatus() {
      @SuppressWarnings("deprecation")
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.MapsPublishStatus
          result =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .MapsPublishStatus.valueOf(mapsPublishStatus_);
      return result == null
          ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
              .MapsPublishStatus.UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status in Google Maps, whether this photo was published or
     * rejected.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;
     * </code>
     */
    public Builder setMapsPublishStatus(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .MapsPublishStatus
            value) {
      if (value == null) {
        throw new NullPointerException();
      }

      mapsPublishStatus_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Output only. Status in Google Maps, whether this photo was published or
     * rejected.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo.MapsPublishStatus maps_publish_status = 13;
     * </code>
     */
    public Builder clearMapsPublishStatus() {

      mapsPublishStatus_ = 0;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.Photo)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.Photo)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<Photo> PARSER =
      new com.google.protobuf.AbstractParser<Photo>() {
        @java.lang.Override
        public Photo parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Photo(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<Photo> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<Photo> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class UploadRef extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.UploadRef)
    UploadRefOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use UploadRef.newBuilder() to construct.
  private UploadRef(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private UploadRef() {
    uploadUrl_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private UploadRef(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              java.lang.String s = input.readStringRequireUtf8();

              uploadUrl_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
        .internal_static_google_streetview_publish_v1_UploadRef_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
        .internal_static_google_streetview_publish_v1_UploadRef_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.Builder
                .class);
  }

  public static final int UPLOAD_URL_FIELD_NUMBER = 1;
  private volatile java.lang.Object uploadUrl_;
  /**
   *
   *
   * <pre>
   * Required. An upload reference should be unique for each user. It follows
   * the form:
   * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
   * </pre>
   *
   * <code>string upload_url = 1;</code>
   */
  public java.lang.String getUploadUrl() {
    java.lang.Object ref = uploadUrl_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      uploadUrl_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Required. An upload reference should be unique for each user. It follows
   * the form:
   * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
   * </pre>
   *
   * <code>string upload_url = 1;</code>
   */
  public com.google.protobuf.ByteString getUploadUrlBytes() {
    java.lang.Object ref = uploadUrl_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      uploadUrl_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (!getUploadUrlBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uploadUrl_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!getUploadUrlBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uploadUrl_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef other =
        (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef) obj;

    boolean result = true;
    result = result && getUploadUrl().equals(other.getUploadUrl());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + UPLOAD_URL_FIELD_NUMBER;
    hash = (53 * hash) + getUploadUrl().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Upload reference for media files.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.UploadRef}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.UploadRef)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRefOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_UploadRef_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_UploadRef_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
                  .Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      uploadUrl_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .internal_static_google_streetview_publish_v1_UploadRef_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
          .getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef result =
          buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef result =
          new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef(this);
      result.uploadUrl_ = uploadUrl_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
              .getDefaultInstance()) return this;
      if (!other.getUploadUrl().isEmpty()) {
        uploadUrl_ = other.uploadUrl_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private java.lang.Object uploadUrl_ = "";
    /**
     *
     *
     * <pre>
     * Required. An upload reference should be unique for each user. It follows
     * the form:
     * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
     * </pre>
     *
     * <code>string upload_url = 1;</code>
     */
    public java.lang.String getUploadUrl() {
      java.lang.Object ref = uploadUrl_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uploadUrl_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. An upload reference should be unique for each user. It follows
     * the form:
     * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
     * </pre>
     *
     * <code>string upload_url = 1;</code>
     */
    public com.google.protobuf.ByteString getUploadUrlBytes() {
      java.lang.Object ref = uploadUrl_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        uploadUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. An upload reference should be unique for each user. It follows
     * the form:
     * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
     * </pre>
     *
     * <code>string upload_url = 1;</code>
     */
    public Builder setUploadUrl(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      uploadUrl_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. An upload reference should be unique for each user. It follows
     * the form:
     * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
     * </pre>
     *
     * <code>string upload_url = 1;</code>
     */
    public Builder clearUploadUrl() {

      uploadUrl_ = getDefaultInstance().getUploadUrl();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. An upload reference should be unique for each user. It follows
     * the form:
     * "https://streetviewpublish.googleapis.com/media/user/{account_id}/photo/{upload_reference}"
     * </pre>
     *
     * <code>string upload_url = 1;</code>
     */
    public Builder setUploadUrlBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      uploadUrl_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.UploadRef)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.UploadRef)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
          .UploadRef
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<UploadRef> PARSER =
      new com.google.protobuf.AbstractParser<UploadRef>() {
        @java.lang.Override
        public UploadRef parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UploadRef(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<UploadRef> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<UploadRef> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchDeletePhotosRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchDeletePhotosRequest)
    BatchDeletePhotosRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchDeletePhotosRequest.newBuilder() to construct.
  private BatchDeletePhotosRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchDeletePhotosRequest() {
    photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchDeletePhotosRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                photoIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              photoIds_.add(s);
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = photoIds_.getUnmodifiableView();
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchDeletePhotosRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchDeletePhotosRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosRequest.Builder.class);
  }

  public static final int PHOTO_IDS_FIELD_NUMBER = 1;
  private com.google.protobuf.LazyStringList photoIds_;
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
   * GET requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public com.google.protobuf.ProtocolStringList getPhotoIdsList() {
    return photoIds_;
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
   * GET requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public int getPhotoIdsCount() {
    return photoIds_.size();
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
   * GET requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public java.lang.String getPhotoIds(int index) {
    return photoIds_.get(index);
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
   * GET requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public com.google.protobuf.ByteString getPhotoIdsBytes(int index) {
    return photoIds_.getByteString(index);
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < photoIds_.size(); i++) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, photoIds_.getRaw(i));
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    {
      int dataSize = 0;
      for (int i = 0; i < photoIds_.size(); i++) {
        dataSize += computeStringSizeNoTag(photoIds_.getRaw(i));
      }
      size += dataSize;
      size += 1 * getPhotoIdsList().size();
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchDeletePhotosRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosRequest)
                obj;

    boolean result = true;
    result = result && getPhotoIdsList().equals(other.getPhotoIdsList());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getPhotoIdsCount() > 0) {
      hash = (37 * hash) + PHOTO_IDS_FIELD_NUMBER;
      hash = (53 * hash) + getPhotoIdsList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to delete multiple [Photos][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchDeletePhotosRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchDeletePhotosRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchDeletePhotosRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      bitField0_ = (bitField0_ & ~0x00000001);
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosRequest(this);
      int from_bitField0_ = bitField0_;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = photoIds_.getUnmodifiableView();
        bitField0_ = (bitField0_ & ~0x00000001);
      }
      result.photoIds_ = photoIds_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest.getDefaultInstance()) return this;
      if (!other.photoIds_.isEmpty()) {
        if (photoIds_.isEmpty()) {
          photoIds_ = other.photoIds_;
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ensurePhotoIdsIsMutable();
          photoIds_.addAll(other.photoIds_);
        }
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private com.google.protobuf.LazyStringList photoIds_ =
        com.google.protobuf.LazyStringArrayList.EMPTY;

    private void ensurePhotoIdsIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = new com.google.protobuf.LazyStringArrayList(photoIds_);
        bitField0_ |= 0x00000001;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getPhotoIdsList() {
      return photoIds_.getUnmodifiableView();
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public int getPhotoIdsCount() {
      return photoIds_.size();
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public java.lang.String getPhotoIds(int index) {
      return photoIds_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public com.google.protobuf.ByteString getPhotoIdsBytes(int index) {
      return photoIds_.getByteString(index);
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder setPhotoIds(int index, java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      ensurePhotoIdsIsMutable();
      photoIds_.set(index, value);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addPhotoIds(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      ensurePhotoIdsIsMutable();
      photoIds_.add(value);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addAllPhotoIds(java.lang.Iterable<java.lang.String> values) {
      ensurePhotoIdsIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(values, photoIds_);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder clearPhotoIds() {
      photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP
     * GET requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addPhotoIdsBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);
      ensurePhotoIdsIsMutable();
      photoIds_.add(value);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchDeletePhotosRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchDeletePhotosRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchDeletePhotosRequest> PARSER =
      new com.google.protobuf.AbstractParser<BatchDeletePhotosRequest>() {
        @java.lang.Override
        public BatchDeletePhotosRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchDeletePhotosRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchDeletePhotosRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchDeletePhotosRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchDeletePhotosResponse extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchDeletePhotosResponse)
    BatchDeletePhotosResponseOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchDeletePhotosResponse.newBuilder() to construct.
  private BatchDeletePhotosResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchDeletePhotosResponse() {
    status_ = java.util.Collections.emptyList();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchDeletePhotosResponse(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                status_ = new java.util.ArrayList<com.google.rpc.Status>();
                mutable_bitField0_ |= 0x00000001;
              }
              status_.add(input.readMessage(com.google.rpc.Status.parser(), extensionRegistry));
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        status_ = java.util.Collections.unmodifiableList(status_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchDeletePhotosResponse_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchDeletePhotosResponse_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosResponse.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosResponse.Builder.class);
  }

  public static final int STATUS_FIELD_NUMBER = 1;
  private java.util.List<com.google.rpc.Status> status_;
  /**
   *
   *
   * <pre>
   * The status for the operation to delete a single
   * [Photo][google.streetview.publish.v1.Photo] in the batch request.
   * </pre>
   *
   * <code>repeated .google.rpc.Status status = 1;</code>
   */
  public java.util.List<com.google.rpc.Status> getStatusList() {
    return status_;
  }
  /**
   *
   *
   * <pre>
   * The status for the operation to delete a single
   * [Photo][google.streetview.publish.v1.Photo] in the batch request.
   * </pre>
   *
   * <code>repeated .google.rpc.Status status = 1;</code>
   */
  public java.util.List<? extends com.google.rpc.StatusOrBuilder> getStatusOrBuilderList() {
    return status_;
  }
  /**
   *
   *
   * <pre>
   * The status for the operation to delete a single
   * [Photo][google.streetview.publish.v1.Photo] in the batch request.
   * </pre>
   *
   * <code>repeated .google.rpc.Status status = 1;</code>
   */
  public int getStatusCount() {
    return status_.size();
  }
  /**
   *
   *
   * <pre>
   * The status for the operation to delete a single
   * [Photo][google.streetview.publish.v1.Photo] in the batch request.
   * </pre>
   *
   * <code>repeated .google.rpc.Status status = 1;</code>
   */
  public com.google.rpc.Status getStatus(int index) {
    return status_.get(index);
  }
  /**
   *
   *
   * <pre>
   * The status for the operation to delete a single
   * [Photo][google.streetview.publish.v1.Photo] in the batch request.
   * </pre>
   *
   * <code>repeated .google.rpc.Status status = 1;</code>
   */
  public com.google.rpc.StatusOrBuilder getStatusOrBuilder(int index) {
    return status_.get(index);
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < status_.size(); i++) {
      output.writeMessage(1, status_.get(i));
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    for (int i = 0; i < status_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, status_.get(i));
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosResponse)
                obj;

    boolean result = true;
    result = result && getStatusList().equals(other.getStatusList());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getStatusCount() > 0) {
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + getStatusList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Response to batch delete of one or more
   * [Photos][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchDeletePhotosResponse}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchDeletePhotosResponse)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponseOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosResponse.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosResponse.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchDeletePhotosResponse.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getStatusFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (statusBuilder_ == null) {
        status_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        statusBuilder_.clear();
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchDeletePhotosResponse_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchDeletePhotosResponse(this);
      int from_bitField0_ = bitField0_;
      if (statusBuilder_ == null) {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          status_ = java.util.Collections.unmodifiableList(status_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.status_ = status_;
      } else {
        result.status_ = statusBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosResponse)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchDeletePhotosResponse
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse.getDefaultInstance()) return this;
      if (statusBuilder_ == null) {
        if (!other.status_.isEmpty()) {
          if (status_.isEmpty()) {
            status_ = other.status_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureStatusIsMutable();
            status_.addAll(other.status_);
          }
          onChanged();
        }
      } else {
        if (!other.status_.isEmpty()) {
          if (statusBuilder_.isEmpty()) {
            statusBuilder_.dispose();
            statusBuilder_ = null;
            status_ = other.status_;
            bitField0_ = (bitField0_ & ~0x00000001);
            statusBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getStatusFieldBuilder()
                    : null;
          } else {
            statusBuilder_.addAllMessages(other.status_);
          }
        }
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchDeletePhotosResponse
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchDeletePhotosResponse)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private java.util.List<com.google.rpc.Status> status_ = java.util.Collections.emptyList();

    private void ensureStatusIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        status_ = new java.util.ArrayList<com.google.rpc.Status>(status_);
        bitField0_ |= 0x00000001;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.rpc.Status, com.google.rpc.Status.Builder, com.google.rpc.StatusOrBuilder>
        statusBuilder_;

    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public java.util.List<com.google.rpc.Status> getStatusList() {
      if (statusBuilder_ == null) {
        return java.util.Collections.unmodifiableList(status_);
      } else {
        return statusBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public int getStatusCount() {
      if (statusBuilder_ == null) {
        return status_.size();
      } else {
        return statusBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public com.google.rpc.Status getStatus(int index) {
      if (statusBuilder_ == null) {
        return status_.get(index);
      } else {
        return statusBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder setStatus(int index, com.google.rpc.Status value) {
      if (statusBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatusIsMutable();
        status_.set(index, value);
        onChanged();
      } else {
        statusBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder setStatus(int index, com.google.rpc.Status.Builder builderForValue) {
      if (statusBuilder_ == null) {
        ensureStatusIsMutable();
        status_.set(index, builderForValue.build());
        onChanged();
      } else {
        statusBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder addStatus(com.google.rpc.Status value) {
      if (statusBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatusIsMutable();
        status_.add(value);
        onChanged();
      } else {
        statusBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder addStatus(int index, com.google.rpc.Status value) {
      if (statusBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureStatusIsMutable();
        status_.add(index, value);
        onChanged();
      } else {
        statusBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder addStatus(com.google.rpc.Status.Builder builderForValue) {
      if (statusBuilder_ == null) {
        ensureStatusIsMutable();
        status_.add(builderForValue.build());
        onChanged();
      } else {
        statusBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder addStatus(int index, com.google.rpc.Status.Builder builderForValue) {
      if (statusBuilder_ == null) {
        ensureStatusIsMutable();
        status_.add(index, builderForValue.build());
        onChanged();
      } else {
        statusBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder addAllStatus(java.lang.Iterable<? extends com.google.rpc.Status> values) {
      if (statusBuilder_ == null) {
        ensureStatusIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, status_);
        onChanged();
      } else {
        statusBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder clearStatus() {
      if (statusBuilder_ == null) {
        status_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        statusBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public Builder removeStatus(int index) {
      if (statusBuilder_ == null) {
        ensureStatusIsMutable();
        status_.remove(index);
        onChanged();
      } else {
        statusBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public com.google.rpc.Status.Builder getStatusBuilder(int index) {
      return getStatusFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public com.google.rpc.StatusOrBuilder getStatusOrBuilder(int index) {
      if (statusBuilder_ == null) {
        return status_.get(index);
      } else {
        return statusBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public java.util.List<? extends com.google.rpc.StatusOrBuilder> getStatusOrBuilderList() {
      if (statusBuilder_ != null) {
        return statusBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(status_);
      }
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public com.google.rpc.Status.Builder addStatusBuilder() {
      return getStatusFieldBuilder().addBuilder(com.google.rpc.Status.getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public com.google.rpc.Status.Builder addStatusBuilder(int index) {
      return getStatusFieldBuilder()
          .addBuilder(index, com.google.rpc.Status.getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * The status for the operation to delete a single
     * [Photo][google.streetview.publish.v1.Photo] in the batch request.
     * </pre>
     *
     * <code>repeated .google.rpc.Status status = 1;</code>
     */
    public java.util.List<com.google.rpc.Status.Builder> getStatusBuilderList() {
      return getStatusFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.rpc.Status, com.google.rpc.Status.Builder, com.google.rpc.StatusOrBuilder>
        getStatusFieldBuilder() {
      if (statusBuilder_ == null) {
        statusBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.rpc.Status,
                com.google.rpc.Status.Builder,
                com.google.rpc.StatusOrBuilder>(
                status_,
                ((bitField0_ & 0x00000001) == 0x00000001),
                getParentForChildren(),
                isClean());
        status_ = null;
      }
      return statusBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchDeletePhotosResponse)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchDeletePhotosResponse)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchDeletePhotosResponse();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchDeletePhotosResponse> PARSER =
      new com.google.protobuf.AbstractParser<BatchDeletePhotosResponse>() {
        @java.lang.Override
        public BatchDeletePhotosResponse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchDeletePhotosResponse(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchDeletePhotosResponse> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchDeletePhotosResponse> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchDeletePhotosResponse
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchGetPhotosRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchGetPhotosRequest)
    BatchGetPhotosRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchGetPhotosRequest.newBuilder() to construct.
  private BatchGetPhotosRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchGetPhotosRequest() {
    photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    view_ = 0;
    languageCode_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchGetPhotosRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              java.lang.String s = input.readStringRequireUtf8();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                photoIds_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              photoIds_.add(s);
              break;
            }
          case 16:
            {
              int rawValue = input.readEnum();

              view_ = rawValue;
              break;
            }
          case 26:
            {
              java.lang.String s = input.readStringRequireUtf8();

              languageCode_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = photoIds_.getUnmodifiableView();
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchGetPhotosRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchGetPhotosRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosRequest.Builder.class);
  }

  private int bitField0_;
  public static final int PHOTO_IDS_FIELD_NUMBER = 1;
  private com.google.protobuf.LazyStringList photoIds_;
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
   * requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public com.google.protobuf.ProtocolStringList getPhotoIdsList() {
    return photoIds_;
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
   * requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public int getPhotoIdsCount() {
    return photoIds_.size();
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
   * requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public java.lang.String getPhotoIds(int index) {
    return photoIds_.get(index);
  }
  /**
   *
   *
   * <pre>
   * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
   * requests require the following syntax for the URL query parameter:
   * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
   * </pre>
   *
   * <code>repeated string photo_ids = 1;</code>
   */
  public com.google.protobuf.ByteString getPhotoIdsBytes(int index) {
    return photoIds_.getByteString(index);
  }

  public static final int VIEW_FIELD_NUMBER = 2;
  private int view_;
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photo bytes should be returned in the
   * Photo response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
   */
  public int getViewValue() {
    return view_;
  }
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photo bytes should be returned in the
   * Photo response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
      getView() {
    @SuppressWarnings("deprecation")
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
            view_);
    return result == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
            .UNRECOGNIZED
        : result;
  }

  public static final int LANGUAGE_CODE_FIELD_NUMBER = 3;
  private volatile java.lang.Object languageCode_;
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 3;</code>
   */
  public java.lang.String getLanguageCode() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      languageCode_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 3;</code>
   */
  public com.google.protobuf.ByteString getLanguageCodeBytes() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      languageCode_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < photoIds_.size(); i++) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, photoIds_.getRaw(i));
    }
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      output.writeEnum(2, view_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, languageCode_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    {
      int dataSize = 0;
      for (int i = 0; i < photoIds_.size(); i++) {
        dataSize += computeStringSizeNoTag(photoIds_.getRaw(i));
      }
      size += dataSize;
      size += 1 * getPhotoIdsList().size();
    }
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, view_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, languageCode_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosRequest)
                obj;

    boolean result = true;
    result = result && getPhotoIdsList().equals(other.getPhotoIdsList());
    result = result && view_ == other.view_;
    result = result && getLanguageCode().equals(other.getLanguageCode());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getPhotoIdsCount() > 0) {
      hash = (37 * hash) + PHOTO_IDS_FIELD_NUMBER;
      hash = (53 * hash) + getPhotoIdsList().hashCode();
    }
    hash = (37 * hash) + VIEW_FIELD_NUMBER;
    hash = (53 * hash) + view_;
    hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getLanguageCode().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to get one or more [Photos][google.streetview.publish.v1.Photo].
   * By default
   * * does not return the download URL for the photo bytes.
   * Parameters:
   * * `view` controls if the download URL for the photo bytes is returned.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchGetPhotosRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchGetPhotosRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      bitField0_ = (bitField0_ & ~0x00000001);
      view_ = 0;

      languageCode_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosRequest(this);
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = photoIds_.getUnmodifiableView();
        bitField0_ = (bitField0_ & ~0x00000001);
      }
      result.photoIds_ = photoIds_;
      result.view_ = view_;
      result.languageCode_ = languageCode_;
      result.bitField0_ = to_bitField0_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchGetPhotosRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchGetPhotosRequest.getDefaultInstance()) return this;
      if (!other.photoIds_.isEmpty()) {
        if (photoIds_.isEmpty()) {
          photoIds_ = other.photoIds_;
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ensurePhotoIdsIsMutable();
          photoIds_.addAll(other.photoIds_);
        }
        onChanged();
      }
      if (other.view_ != 0) {
        setViewValue(other.getViewValue());
      }
      if (!other.getLanguageCode().isEmpty()) {
        languageCode_ = other.languageCode_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private com.google.protobuf.LazyStringList photoIds_ =
        com.google.protobuf.LazyStringArrayList.EMPTY;

    private void ensurePhotoIdsIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        photoIds_ = new com.google.protobuf.LazyStringArrayList(photoIds_);
        bitField0_ |= 0x00000001;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getPhotoIdsList() {
      return photoIds_.getUnmodifiableView();
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public int getPhotoIdsCount() {
      return photoIds_.size();
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public java.lang.String getPhotoIds(int index) {
      return photoIds_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public com.google.protobuf.ByteString getPhotoIdsBytes(int index) {
      return photoIds_.getByteString(index);
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder setPhotoIds(int index, java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      ensurePhotoIdsIsMutable();
      photoIds_.set(index, value);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addPhotoIds(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }
      ensurePhotoIdsIsMutable();
      photoIds_.add(value);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addAllPhotoIds(java.lang.Iterable<java.lang.String> values) {
      ensurePhotoIdsIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(values, photoIds_);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder clearPhotoIds() {
      photoIds_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. IDs of the [Photos][google.streetview.publish.v1.Photo]. HTTP GET
     * requests require the following syntax for the URL query parameter:
     * `photoIds=&lt;id1&gt;&amp;photoIds=&lt;id2&gt;&amp;...`.
     * </pre>
     *
     * <code>repeated string photo_ids = 1;</code>
     */
    public Builder addPhotoIdsBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);
      ensurePhotoIdsIsMutable();
      photoIds_.add(value);
      onChanged();
      return this;
    }

    private int view_ = 0;
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * Photo response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public int getViewValue() {
      return view_;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * Photo response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder setViewValue(int value) {
      view_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * Photo response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
        getView() {
      @SuppressWarnings("deprecation")
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
              view_);
      return result == null
          ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
              .UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * Photo response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder setView(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView value) {
      if (value == null) {
        throw new NullPointerException();
      }

      view_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * Photo response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder clearView() {

      view_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object languageCode_ = "";
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public java.lang.String getLanguageCode() {
      java.lang.Object ref = languageCode_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        languageCode_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public com.google.protobuf.ByteString getLanguageCodeBytes() {
      java.lang.Object ref = languageCode_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        languageCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder setLanguageCode(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      languageCode_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder clearLanguageCode() {

      languageCode_ = getDefaultInstance().getLanguageCode();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      languageCode_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchGetPhotosRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchGetPhotosRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchGetPhotosRequest> PARSER =
      new com.google.protobuf.AbstractParser<BatchGetPhotosRequest>() {
        @java.lang.Override
        public BatchGetPhotosRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchGetPhotosRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchGetPhotosRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchGetPhotosRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchGetPhotosResponse extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchGetPhotosResponse)
    BatchGetPhotosResponseOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchGetPhotosResponse.newBuilder() to construct.
  private BatchGetPhotosResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchGetPhotosResponse() {
    results_ = java.util.Collections.emptyList();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchGetPhotosResponse(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                results_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                            .PhotoResponse>();
                mutable_bitField0_ |= 0x00000001;
              }
              results_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                          .PhotoResponse.parser(),
                      extensionRegistry));
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        results_ = java.util.Collections.unmodifiableList(results_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchGetPhotosResponse_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchGetPhotosResponse_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosResponse.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosResponse.Builder.class);
  }

  public static final int RESULTS_FIELD_NUMBER = 1;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
      results_;
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
   * the requests in
   * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
      getResultsList() {
    return results_;
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
   * the requests in
   * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .PhotoResponseOrBuilder>
      getResultsOrBuilderList() {
    return results_;
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
   * the requests in
   * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public int getResultsCount() {
    return results_.size();
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
   * the requests in
   * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
      getResults(int index) {
    return results_.get(index);
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
   * the requests in
   * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .PhotoResponseOrBuilder
      getResultsOrBuilder(int index) {
    return results_.get(index);
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < results_.size(); i++) {
      output.writeMessage(1, results_.get(i));
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    for (int i = 0; i < results_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, results_.get(i));
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosResponse)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosResponse)
                obj;

    boolean result = true;
    result = result && getResultsList().equals(other.getResultsList());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getResultsCount() > 0) {
      hash = (37 * hash) + RESULTS_FIELD_NUMBER;
      hash = (53 * hash) + getResultsList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Response to batch get of [Photos][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchGetPhotosResponse}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchGetPhotosResponse)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponseOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosResponse.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosResponse.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getResultsFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (resultsBuilder_ == null) {
        results_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        resultsBuilder_.clear();
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchGetPhotosResponse_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosResponse
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosResponse
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosResponse
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchGetPhotosResponse(this);
      int from_bitField0_ = bitField0_;
      if (resultsBuilder_ == null) {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          results_ = java.util.Collections.unmodifiableList(results_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.results_ = results_;
      } else {
        result.results_ = resultsBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchGetPhotosResponse) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosResponse)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchGetPhotosResponse
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchGetPhotosResponse.getDefaultInstance()) return this;
      if (resultsBuilder_ == null) {
        if (!other.results_.isEmpty()) {
          if (results_.isEmpty()) {
            results_ = other.results_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureResultsIsMutable();
            results_.addAll(other.results_);
          }
          onChanged();
        }
      } else {
        if (!other.results_.isEmpty()) {
          if (resultsBuilder_.isEmpty()) {
            resultsBuilder_.dispose();
            resultsBuilder_ = null;
            results_ = other.results_;
            bitField0_ = (bitField0_ & ~0x00000001);
            resultsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getResultsFieldBuilder()
                    : null;
          } else {
            resultsBuilder_.addAllMessages(other.results_);
          }
        }
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchGetPhotosResponse)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
        results_ = java.util.Collections.emptyList();

    private void ensureResultsIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        results_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse>(results_);
        bitField0_ |= 0x00000001;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .PhotoResponseOrBuilder>
        resultsBuilder_;

    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
        getResultsList() {
      if (resultsBuilder_ == null) {
        return java.util.Collections.unmodifiableList(results_);
      } else {
        return resultsBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public int getResultsCount() {
      if (resultsBuilder_ == null) {
        return results_.size();
      } else {
        return resultsBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
        getResults(int index) {
      if (resultsBuilder_ == null) {
        return results_.get(index);
      } else {
        return resultsBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder setResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.set(index, value);
        onChanged();
      } else {
        resultsBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder setResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.set(index, builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.add(value);
        onChanged();
      } else {
        resultsBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.add(index, value);
        onChanged();
      } else {
        resultsBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.add(builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.add(index, builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addAllResults(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                        .PhotoResponse>
            values) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, results_);
        onChanged();
      } else {
        resultsBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder clearResults() {
      if (resultsBuilder_ == null) {
        results_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        resultsBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder removeResults(int index) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.remove(index);
        onChanged();
      } else {
        resultsBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        getResultsBuilder(int index) {
      return getResultsFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .PhotoResponseOrBuilder
        getResultsOrBuilder(int index) {
      if (resultsBuilder_ == null) {
        return results_.get(index);
      } else {
        return resultsBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponseOrBuilder>
        getResultsOrBuilderList() {
      if (resultsBuilder_ != null) {
        return resultsBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(results_);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        addResultsBuilder() {
      return getResultsFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        addResultsBuilder(int index) {
      return getResultsFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] requested, in the same order as
     * the requests in
     * [BatchGetPhotos][google.streetview.publish.v1.StreetViewPublishService.BatchGetPhotos].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder>
        getResultsBuilderList() {
      return getResultsFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .PhotoResponseOrBuilder>
        getResultsFieldBuilder() {
      if (resultsBuilder_ == null) {
        resultsBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponseOrBuilder>(
                results_,
                ((bitField0_ & 0x00000001) == 0x00000001),
                getParentForChildren(),
                isClean());
        results_ = null;
      }
      return resultsBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchGetPhotosResponse)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchGetPhotosResponse)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchGetPhotosResponse();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchGetPhotosResponse> PARSER =
      new com.google.protobuf.AbstractParser<BatchGetPhotosResponse>() {
        @java.lang.Override
        public BatchGetPhotosResponse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchGetPhotosResponse(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchGetPhotosResponse> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchGetPhotosResponse> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchGetPhotosResponse
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchUpdatePhotosRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchUpdatePhotosRequest)
    BatchUpdatePhotosRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchUpdatePhotosRequest.newBuilder() to construct.
  private BatchUpdatePhotosRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchUpdatePhotosRequest() {
    updatePhotoRequests_ = java.util.Collections.emptyList();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchUpdatePhotosRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                updatePhotoRequests_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                            .UpdatePhotoRequest>();
                mutable_bitField0_ |= 0x00000001;
              }
              updatePhotoRequests_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                          .UpdatePhotoRequest.parser(),
                      extensionRegistry));
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        updatePhotoRequests_ = java.util.Collections.unmodifiableList(updatePhotoRequests_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchUpdatePhotosRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchUpdatePhotosRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosRequest.Builder.class);
  }

  public static final int UPDATE_PHOTO_REQUESTS_FIELD_NUMBER = 1;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .UpdatePhotoRequest>
      updatePhotoRequests_;
  /**
   *
   *
   * <pre>
   * Required. List of
   * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
   * </code>
   */
  public java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .UpdatePhotoRequest>
      getUpdatePhotoRequestsList() {
    return updatePhotoRequests_;
  }
  /**
   *
   *
   * <pre>
   * Required. List of
   * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
   * </code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequestOrBuilder>
      getUpdatePhotoRequestsOrBuilderList() {
    return updatePhotoRequests_;
  }
  /**
   *
   *
   * <pre>
   * Required. List of
   * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
   * </code>
   */
  public int getUpdatePhotoRequestsCount() {
    return updatePhotoRequests_.size();
  }
  /**
   *
   *
   * <pre>
   * Required. List of
   * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
   * </code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
      getUpdatePhotoRequests(int index) {
    return updatePhotoRequests_.get(index);
  }
  /**
   *
   *
   * <pre>
   * Required. List of
   * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
   * </code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequestOrBuilder
      getUpdatePhotoRequestsOrBuilder(int index) {
    return updatePhotoRequests_.get(index);
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < updatePhotoRequests_.size(); i++) {
      output.writeMessage(1, updatePhotoRequests_.get(i));
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    for (int i = 0; i < updatePhotoRequests_.size(); i++) {
      size +=
          com.google.protobuf.CodedOutputStream.computeMessageSize(
              1, updatePhotoRequests_.get(i));
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchUpdatePhotosRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosRequest)
                obj;

    boolean result = true;
    result = result && getUpdatePhotoRequestsList().equals(other.getUpdatePhotoRequestsList());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getUpdatePhotoRequestsCount() > 0) {
      hash = (37 * hash) + UPDATE_PHOTO_REQUESTS_FIELD_NUMBER;
      hash = (53 * hash) + getUpdatePhotoRequestsList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to update the metadata of photos.
   * Updating the pixels of photos is not supported.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchUpdatePhotosRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchUpdatePhotosRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchUpdatePhotosRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getUpdatePhotoRequestsFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (updatePhotoRequestsBuilder_ == null) {
        updatePhotoRequests_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        updatePhotoRequestsBuilder_.clear();
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosRequest(this);
      int from_bitField0_ = bitField0_;
      if (updatePhotoRequestsBuilder_ == null) {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          updatePhotoRequests_ = java.util.Collections.unmodifiableList(updatePhotoRequests_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.updatePhotoRequests_ = updatePhotoRequests_;
      } else {
        result.updatePhotoRequests_ = updatePhotoRequestsBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest.getDefaultInstance()) return this;
      if (updatePhotoRequestsBuilder_ == null) {
        if (!other.updatePhotoRequests_.isEmpty()) {
          if (updatePhotoRequests_.isEmpty()) {
            updatePhotoRequests_ = other.updatePhotoRequests_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureUpdatePhotoRequestsIsMutable();
            updatePhotoRequests_.addAll(other.updatePhotoRequests_);
          }
          onChanged();
        }
      } else {
        if (!other.updatePhotoRequests_.isEmpty()) {
          if (updatePhotoRequestsBuilder_.isEmpty()) {
            updatePhotoRequestsBuilder_.dispose();
            updatePhotoRequestsBuilder_ = null;
            updatePhotoRequests_ = other.updatePhotoRequests_;
            bitField0_ = (bitField0_ & ~0x00000001);
            updatePhotoRequestsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getUpdatePhotoRequestsFieldBuilder()
                    : null;
          } else {
            updatePhotoRequestsBuilder_.addAllMessages(other.updatePhotoRequests_);
          }
        }
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest>
        updatePhotoRequests_ = java.util.Collections.emptyList();

    private void ensureUpdatePhotoRequestsIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        updatePhotoRequests_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest>(updatePhotoRequests_);
        bitField0_ |= 0x00000001;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequestOrBuilder>
        updatePhotoRequestsBuilder_;

    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest>
        getUpdatePhotoRequestsList() {
      if (updatePhotoRequestsBuilder_ == null) {
        return java.util.Collections.unmodifiableList(updatePhotoRequests_);
      } else {
        return updatePhotoRequestsBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public int getUpdatePhotoRequestsCount() {
      if (updatePhotoRequestsBuilder_ == null) {
        return updatePhotoRequests_.size();
      } else {
        return updatePhotoRequestsBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest
        getUpdatePhotoRequests(int index) {
      if (updatePhotoRequestsBuilder_ == null) {
        return updatePhotoRequests_.get(index);
      } else {
        return updatePhotoRequestsBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder setUpdatePhotoRequests(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
            value) {
      if (updatePhotoRequestsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.set(index, value);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder setUpdatePhotoRequests(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
                .Builder
            builderForValue) {
      if (updatePhotoRequestsBuilder_ == null) {
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.set(index, builderForValue.build());
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder addUpdatePhotoRequests(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
            value) {
      if (updatePhotoRequestsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.add(value);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder addUpdatePhotoRequests(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
            value) {
      if (updatePhotoRequestsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.add(index, value);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder addUpdatePhotoRequests(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
                .Builder
            builderForValue) {
      if (updatePhotoRequestsBuilder_ == null) {
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.add(builderForValue.build());
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder addUpdatePhotoRequests(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
                .Builder
            builderForValue) {
      if (updatePhotoRequestsBuilder_ == null) {
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.add(index, builderForValue.build());
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder addAllUpdatePhotoRequests(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                        .UpdatePhotoRequest>
            values) {
      if (updatePhotoRequestsBuilder_ == null) {
        ensureUpdatePhotoRequestsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, updatePhotoRequests_);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder clearUpdatePhotoRequests() {
      if (updatePhotoRequestsBuilder_ == null) {
        updatePhotoRequests_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public Builder removeUpdatePhotoRequests(int index) {
      if (updatePhotoRequestsBuilder_ == null) {
        ensureUpdatePhotoRequestsIsMutable();
        updatePhotoRequests_.remove(index);
        onChanged();
      } else {
        updatePhotoRequestsBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest.Builder
        getUpdatePhotoRequestsBuilder(int index) {
      return getUpdatePhotoRequestsFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequestOrBuilder
        getUpdatePhotoRequestsOrBuilder(int index) {
      if (updatePhotoRequestsBuilder_ == null) {
        return updatePhotoRequests_.get(index);
      } else {
        return updatePhotoRequestsBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequestOrBuilder>
        getUpdatePhotoRequestsOrBuilderList() {
      if (updatePhotoRequestsBuilder_ != null) {
        return updatePhotoRequestsBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(updatePhotoRequests_);
      }
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest.Builder
        addUpdatePhotoRequestsBuilder() {
      return getUpdatePhotoRequestsFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequest.getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest.Builder
        addUpdatePhotoRequestsBuilder(int index) {
      return getUpdatePhotoRequestsFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequest.getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * Required. List of
     * [UpdatePhotoRequests][google.streetview.publish.v1.UpdatePhotoRequest].
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.UpdatePhotoRequest update_photo_requests = 1;
     * </code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest.Builder>
        getUpdatePhotoRequestsBuilderList() {
      return getUpdatePhotoRequestsFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequestOrBuilder>
        getUpdatePhotoRequestsFieldBuilder() {
      if (updatePhotoRequestsBuilder_ == null) {
        updatePhotoRequestsBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequestOrBuilder>(
                updatePhotoRequests_,
                ((bitField0_ & 0x00000001) == 0x00000001),
                getParentForChildren(),
                isClean());
        updatePhotoRequests_ = null;
      }
      return updatePhotoRequestsBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchUpdatePhotosRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchUpdatePhotosRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchUpdatePhotosRequest> PARSER =
      new com.google.protobuf.AbstractParser<BatchUpdatePhotosRequest>() {
        @java.lang.Override
        public BatchUpdatePhotosRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchUpdatePhotosRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchUpdatePhotosRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchUpdatePhotosRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class BatchUpdatePhotosResponse extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.BatchUpdatePhotosResponse)
    BatchUpdatePhotosResponseOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use BatchUpdatePhotosResponse.newBuilder() to construct.
  private BatchUpdatePhotosResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private BatchUpdatePhotosResponse() {
    results_ = java.util.Collections.emptyList();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private BatchUpdatePhotosResponse(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                results_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                            .PhotoResponse>();
                mutable_bitField0_ |= 0x00000001;
              }
              results_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                          .PhotoResponse.parser(),
                      extensionRegistry));
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        results_ = java.util.Collections.unmodifiableList(results_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchUpdatePhotosResponse_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_BatchUpdatePhotosResponse_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosResponse.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosResponse.Builder.class);
  }

  public static final int RESULTS_FIELD_NUMBER = 1;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
      results_;
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
   * the request.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
      getResultsList() {
    return results_;
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
   * the request.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .PhotoResponseOrBuilder>
      getResultsOrBuilderList() {
    return results_;
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
   * the request.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public int getResultsCount() {
    return results_.size();
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
   * the request.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
      getResults(int index) {
    return results_.get(index);
  }
  /**
   *
   *
   * <pre>
   * List of results for each individual
   * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
   * the request.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .PhotoResponseOrBuilder
      getResultsOrBuilder(int index) {
    return results_.get(index);
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < results_.size(); i++) {
      output.writeMessage(1, results_.get(i));
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    for (int i = 0; i < results_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, results_.get(i));
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosResponse)
                obj;

    boolean result = true;
    result = result && getResultsList().equals(other.getResultsList());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getResultsCount() > 0) {
      hash = (37 * hash) + RESULTS_FIELD_NUMBER;
      hash = (53 * hash) + getResultsList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Response to batch update of metadata of one or more
   * [Photos][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.BatchUpdatePhotosResponse}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.BatchUpdatePhotosResponse)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponseOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosResponse.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosResponse.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchUpdatePhotosResponse.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getResultsFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (resultsBuilder_ == null) {
        results_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        resultsBuilder_.clear();
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_BatchUpdatePhotosResponse_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .BatchUpdatePhotosResponse(this);
      int from_bitField0_ = bitField0_;
      if (resultsBuilder_ == null) {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          results_ = java.util.Collections.unmodifiableList(results_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.results_ = results_;
      } else {
        result.results_ = resultsBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosResponse)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .BatchUpdatePhotosResponse
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse.getDefaultInstance()) return this;
      if (resultsBuilder_ == null) {
        if (!other.results_.isEmpty()) {
          if (results_.isEmpty()) {
            results_ = other.results_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureResultsIsMutable();
            results_.addAll(other.results_);
          }
          onChanged();
        }
      } else {
        if (!other.results_.isEmpty()) {
          if (resultsBuilder_.isEmpty()) {
            resultsBuilder_.dispose();
            resultsBuilder_ = null;
            results_ = other.results_;
            bitField0_ = (bitField0_ & ~0x00000001);
            resultsBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getResultsFieldBuilder()
                    : null;
          } else {
            resultsBuilder_.addAllMessages(other.results_);
          }
        }
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .BatchUpdatePhotosResponse
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .BatchUpdatePhotosResponse)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
        results_ = java.util.Collections.emptyList();

    private void ensureResultsIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        results_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse>(results_);
        bitField0_ |= 0x00000001;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .PhotoResponseOrBuilder>
        resultsBuilder_;

    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse>
        getResultsList() {
      if (resultsBuilder_ == null) {
        return java.util.Collections.unmodifiableList(results_);
      } else {
        return resultsBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public int getResultsCount() {
      if (resultsBuilder_ == null) {
        return results_.size();
      } else {
        return resultsBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
        getResults(int index) {
      if (resultsBuilder_ == null) {
        return results_.get(index);
      } else {
        return resultsBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder setResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.set(index, value);
        onChanged();
      } else {
        resultsBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder setResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.set(index, builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.add(value);
        onChanged();
      } else {
        resultsBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            value) {
      if (resultsBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResultsIsMutable();
        results_.add(index, value);
        onChanged();
      } else {
        resultsBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.add(builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addResults(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder
            builderForValue) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.add(index, builderForValue.build());
        onChanged();
      } else {
        resultsBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder addAllResults(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                        .PhotoResponse>
            values) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, results_);
        onChanged();
      } else {
        resultsBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder clearResults() {
      if (resultsBuilder_ == null) {
        results_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        resultsBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public Builder removeResults(int index) {
      if (resultsBuilder_ == null) {
        ensureResultsIsMutable();
        results_.remove(index);
        onChanged();
      } else {
        resultsBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        getResultsBuilder(int index) {
      return getResultsFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .PhotoResponseOrBuilder
        getResultsOrBuilder(int index) {
      if (resultsBuilder_ == null) {
        return results_.get(index);
      } else {
        return resultsBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponseOrBuilder>
        getResultsOrBuilderList() {
      if (resultsBuilder_ != null) {
        return resultsBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(results_);
      }
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        addResultsBuilder() {
      return getResultsFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
            .Builder
        addResultsBuilder(int index) {
      return getResultsFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of results for each individual
     * [Photo][google.streetview.publish.v1.Photo] updated, in the same order as
     * the request.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.PhotoResponse results = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder>
        getResultsBuilderList() {
      return getResultsFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoResponse
                .Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .PhotoResponseOrBuilder>
        getResultsFieldBuilder() {
      if (resultsBuilder_ == null) {
        resultsBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponse.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .PhotoResponseOrBuilder>(
                results_,
                ((bitField0_ & 0x00000001) == 0x00000001),
                getParentForChildren(),
                isClean());
        results_ = null;
      }
      return resultsBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.BatchUpdatePhotosResponse)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.BatchUpdatePhotosResponse)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .BatchUpdatePhotosResponse();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<BatchUpdatePhotosResponse> PARSER =
      new com.google.protobuf.AbstractParser<BatchUpdatePhotosResponse>() {
        @java.lang.Override
        public BatchUpdatePhotosResponse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new BatchUpdatePhotosResponse(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<BatchUpdatePhotosResponse> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<BatchUpdatePhotosResponse> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .BatchUpdatePhotosResponse
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class CreatePhotoRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.CreatePhotoRequest)
    CreatePhotoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use CreatePhotoRequest.newBuilder() to construct.
  private CreatePhotoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private CreatePhotoRequest() {}

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private CreatePhotoRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
                  subBuilder = null;
              if (photo_ != null) {
                subBuilder = photo_.toBuilder();
              }
              photo_ =
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                          .parser(),
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(photo_);
                photo_ = subBuilder.buildPartial();
              }

              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_CreatePhotoRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_CreatePhotoRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .CreatePhotoRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .CreatePhotoRequest.Builder.class);
  }

  public static final int PHOTO_FIELD_NUMBER = 1;
  private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo photo_;
  /**
   *
   *
   * <pre>
   * Required. Photo to create.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public boolean hasPhoto() {
    return photo_ != null;
  }
  /**
   *
   *
   * <pre>
   * Required. Photo to create.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhoto() {
    return photo_ == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .getDefaultInstance()
        : photo_;
  }
  /**
   *
   *
   * <pre>
   * Required. Photo to create.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
      getPhotoOrBuilder() {
    return getPhoto();
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (photo_ != null) {
      output.writeMessage(1, getPhoto());
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (photo_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPhoto());
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .CreatePhotoRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .CreatePhotoRequest)
                obj;

    boolean result = true;
    result = result && (hasPhoto() == other.hasPhoto());
    if (hasPhoto()) {
      result = result && getPhoto().equals(other.getPhoto());
    }
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasPhoto()) {
      hash = (37 * hash) + PHOTO_FIELD_NUMBER;
      hash = (53 * hash) + getPhoto().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to create a [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.CreatePhotoRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.CreatePhotoRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_CreatePhotoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_CreatePhotoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .CreatePhotoRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .CreatePhotoRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (photoBuilder_ == null) {
        photo_ = null;
      } else {
        photo_ = null;
        photoBuilder_ = null;
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_CreatePhotoRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .CreatePhotoRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .CreatePhotoRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .CreatePhotoRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .CreatePhotoRequest(this);
      if (photoBuilder_ == null) {
        result.photo_ = photo_;
      } else {
        result.photo_ = photoBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .CreatePhotoRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .CreatePhotoRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .CreatePhotoRequest.getDefaultInstance()) return this;
      if (other.hasPhoto()) {
        mergePhoto(other.getPhoto());
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .CreatePhotoRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo photo_ =
        null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        photoBuilder_;
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public boolean hasPhoto() {
      return photoBuilder_ != null || photo_ != null;
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhoto() {
      if (photoBuilder_ == null) {
        return photo_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .getDefaultInstance()
            : photo_;
      } else {
        return photoBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder setPhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        photo_ = value;
        onChanged();
      } else {
        photoBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder setPhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
            builderForValue) {
      if (photoBuilder_ == null) {
        photo_ = builderForValue.build();
        onChanged();
      } else {
        photoBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder mergePhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photoBuilder_ == null) {
        if (photo_ != null) {
          photo_ =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .newBuilder(photo_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          photo_ = value;
        }
        onChanged();
      } else {
        photoBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder clearPhoto() {
      if (photoBuilder_ == null) {
        photo_ = null;
        onChanged();
      } else {
        photo_ = null;
        photoBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
        getPhotoBuilder() {

      onChanged();
      return getPhotoFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
        getPhotoOrBuilder() {
      if (photoBuilder_ != null) {
        return photoBuilder_.getMessageOrBuilder();
      } else {
        return photo_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .getDefaultInstance()
            : photo_;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. Photo to create.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        getPhotoFieldBuilder() {
      if (photoBuilder_ == null) {
        photoBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PhotoOrBuilder>(getPhoto(), getParentForChildren(), isClean());
        photo_ = null;
      }
      return photoBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.CreatePhotoRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.CreatePhotoRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .CreatePhotoRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .CreatePhotoRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<CreatePhotoRequest> PARSER =
      new com.google.protobuf.AbstractParser<CreatePhotoRequest>() {
        @java.lang.Override
        public CreatePhotoRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new CreatePhotoRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<CreatePhotoRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<CreatePhotoRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class DeletePhotoRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.DeletePhotoRequest)
    DeletePhotoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use DeletePhotoRequest.newBuilder() to construct.
  private DeletePhotoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private DeletePhotoRequest() {
    photoId_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private DeletePhotoRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              java.lang.String s = input.readStringRequireUtf8();

              photoId_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_DeletePhotoRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_DeletePhotoRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .DeletePhotoRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .DeletePhotoRequest.Builder.class);
  }

  public static final int PHOTO_ID_FIELD_NUMBER = 1;
  private volatile java.lang.Object photoId_;
  /**
   *
   *
   * <pre>
   * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * <code>string photo_id = 1;</code>
   */
  public java.lang.String getPhotoId() {
    java.lang.Object ref = photoId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      photoId_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * <code>string photo_id = 1;</code>
   */
  public com.google.protobuf.ByteString getPhotoIdBytes() {
    java.lang.Object ref = photoId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      photoId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (!getPhotoIdBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, photoId_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!getPhotoIdBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, photoId_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .DeletePhotoRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .DeletePhotoRequest)
                obj;

    boolean result = true;
    result = result && getPhotoId().equals(other.getPhotoId());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + PHOTO_ID_FIELD_NUMBER;
    hash = (53 * hash) + getPhotoId().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to delete a [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.DeletePhotoRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.DeletePhotoRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_DeletePhotoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_DeletePhotoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .DeletePhotoRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .DeletePhotoRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      photoId_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_DeletePhotoRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .DeletePhotoRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .DeletePhotoRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .DeletePhotoRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .DeletePhotoRequest(this);
      result.photoId_ = photoId_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .DeletePhotoRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .DeletePhotoRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .DeletePhotoRequest.getDefaultInstance()) return this;
      if (!other.getPhotoId().isEmpty()) {
        photoId_ = other.photoId_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .DeletePhotoRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private java.lang.Object photoId_ = "";
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public java.lang.String getPhotoId() {
      java.lang.Object ref = photoId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        photoId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public com.google.protobuf.ByteString getPhotoIdBytes() {
      java.lang.Object ref = photoId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        photoId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder setPhotoId(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      photoId_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder clearPhotoId() {

      photoId_ = getDefaultInstance().getPhotoId();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder setPhotoIdBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      photoId_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.DeletePhotoRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.DeletePhotoRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .DeletePhotoRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .DeletePhotoRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<DeletePhotoRequest> PARSER =
      new com.google.protobuf.AbstractParser<DeletePhotoRequest>() {
        @java.lang.Override
        public DeletePhotoRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new DeletePhotoRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<DeletePhotoRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<DeletePhotoRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class GetPhotoRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.GetPhotoRequest)
    GetPhotoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use GetPhotoRequest.newBuilder() to construct.
  private GetPhotoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private GetPhotoRequest() {
    photoId_ = "";
    view_ = 0;
    languageCode_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private GetPhotoRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              java.lang.String s = input.readStringRequireUtf8();

              photoId_ = s;
              break;
            }
          case 16:
            {
              int rawValue = input.readEnum();

              view_ = rawValue;
              break;
            }
          case 26:
            {
              java.lang.String s = input.readStringRequireUtf8();

              languageCode_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_GetPhotoRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_GetPhotoRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
                .class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
                .Builder.class);
  }

  public static final int PHOTO_ID_FIELD_NUMBER = 1;
  private volatile java.lang.Object photoId_;
  /**
   *
   *
   * <pre>
   * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * <code>string photo_id = 1;</code>
   */
  public java.lang.String getPhotoId() {
    java.lang.Object ref = photoId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      photoId_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
   * </pre>
   *
   * <code>string photo_id = 1;</code>
   */
  public com.google.protobuf.ByteString getPhotoIdBytes() {
    java.lang.Object ref = photoId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      photoId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int VIEW_FIELD_NUMBER = 2;
  private int view_;
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photo bytes should be returned in the
   * [Photo][google.streetview.publish.v1.Photo] response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
   */
  public int getViewValue() {
    return view_;
  }
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photo bytes should be returned in the
   * [Photo][google.streetview.publish.v1.Photo] response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
      getView() {
    @SuppressWarnings("deprecation")
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
            view_);
    return result == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
            .UNRECOGNIZED
        : result;
  }

  public static final int LANGUAGE_CODE_FIELD_NUMBER = 3;
  private volatile java.lang.Object languageCode_;
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 3;</code>
   */
  public java.lang.String getLanguageCode() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      languageCode_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 3;</code>
   */
  public com.google.protobuf.ByteString getLanguageCodeBytes() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      languageCode_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (!getPhotoIdBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, photoId_);
    }
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      output.writeEnum(2, view_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, languageCode_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!getPhotoIdBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, photoId_);
    }
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, view_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, languageCode_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest other =
        (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest)
            obj;

    boolean result = true;
    result = result && getPhotoId().equals(other.getPhotoId());
    result = result && view_ == other.view_;
    result = result && getLanguageCode().equals(other.getLanguageCode());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + PHOTO_ID_FIELD_NUMBER;
    hash = (53 * hash) + getPhotoId().hashCode();
    hash = (37 * hash) + VIEW_FIELD_NUMBER;
    hash = (53 * hash) + view_;
    hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getLanguageCode().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to get a [Photo][google.streetview.publish.v1.Photo].
   * By default
   * * does not return the download URL for the photo bytes.
   * Parameters:
   * * `view` controls if the download URL for the photo bytes is returned.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.GetPhotoRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.GetPhotoRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_GetPhotoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_GetPhotoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .GetPhotoRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .GetPhotoRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      photoId_ = "";

      view_ = 0;

      languageCode_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_GetPhotoRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
          .getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .GetPhotoRequest(this);
      result.photoId_ = photoId_;
      result.view_ = view_;
      result.languageCode_ = languageCode_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .GetPhotoRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
              .getDefaultInstance()) return this;
      if (!other.getPhotoId().isEmpty()) {
        photoId_ = other.photoId_;
        onChanged();
      }
      if (other.view_ != 0) {
        setViewValue(other.getViewValue());
      }
      if (!other.getLanguageCode().isEmpty()) {
        languageCode_ = other.languageCode_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .GetPhotoRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private java.lang.Object photoId_ = "";
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public java.lang.String getPhotoId() {
      java.lang.Object ref = photoId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        photoId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public com.google.protobuf.ByteString getPhotoIdBytes() {
      java.lang.Object ref = photoId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        photoId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder setPhotoId(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      photoId_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder clearPhotoId() {

      photoId_ = getDefaultInstance().getPhotoId();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. ID of the [Photo][google.streetview.publish.v1.Photo].
     * </pre>
     *
     * <code>string photo_id = 1;</code>
     */
    public Builder setPhotoIdBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      photoId_ = value;
      onChanged();
      return this;
    }

    private int view_ = 0;
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * [Photo][google.streetview.publish.v1.Photo] response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public int getViewValue() {
      return view_;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * [Photo][google.streetview.publish.v1.Photo] response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder setViewValue(int value) {
      view_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * [Photo][google.streetview.publish.v1.Photo] response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
        getView() {
      @SuppressWarnings("deprecation")
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
              view_);
      return result == null
          ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
              .UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * [Photo][google.streetview.publish.v1.Photo] response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder setView(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView value) {
      if (value == null) {
        throw new NullPointerException();
      }

      view_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photo bytes should be returned in the
     * [Photo][google.streetview.publish.v1.Photo] response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 2;</code>
     */
    public Builder clearView() {

      view_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object languageCode_ = "";
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public java.lang.String getLanguageCode() {
      java.lang.Object ref = languageCode_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        languageCode_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public com.google.protobuf.ByteString getLanguageCodeBytes() {
      java.lang.Object ref = languageCode_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        languageCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder setLanguageCode(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      languageCode_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder clearLanguageCode() {

      languageCode_ = getDefaultInstance().getLanguageCode();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 3;</code>
     */
    public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      languageCode_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.GetPhotoRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.GetPhotoRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .GetPhotoRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .GetPhotoRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<GetPhotoRequest> PARSER =
      new com.google.protobuf.AbstractParser<GetPhotoRequest>() {
        @java.lang.Override
        public GetPhotoRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new GetPhotoRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<GetPhotoRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<GetPhotoRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class ListPhotosRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.ListPhotosRequest)
    ListPhotosRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use ListPhotosRequest.newBuilder() to construct.
  private ListPhotosRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private ListPhotosRequest() {
    view_ = 0;
    pageSize_ = 0;
    pageToken_ = "";
    filter_ = "";
    languageCode_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private ListPhotosRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 8:
            {
              int rawValue = input.readEnum();

              view_ = rawValue;
              break;
            }
          case 16:
            {
              pageSize_ = input.readInt32();
              break;
            }
          case 26:
            {
              java.lang.String s = input.readStringRequireUtf8();

              pageToken_ = s;
              break;
            }
          case 34:
            {
              java.lang.String s = input.readStringRequireUtf8();

              filter_ = s;
              break;
            }
          case 42:
            {
              java.lang.String s = input.readStringRequireUtf8();

              languageCode_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_ListPhotosRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_ListPhotosRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .ListPhotosRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .ListPhotosRequest.Builder.class);
  }

  public static final int VIEW_FIELD_NUMBER = 1;
  private int view_;
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photos bytes should be returned in the
   * Photos response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
   */
  public int getViewValue() {
    return view_;
  }
  /**
   *
   *
   * <pre>
   * Specifies if a download URL for the photos bytes should be returned in the
   * Photos response.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
      getView() {
    @SuppressWarnings("deprecation")
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
            view_);
    return result == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
            .UNRECOGNIZED
        : result;
  }

  public static final int PAGE_SIZE_FIELD_NUMBER = 2;
  private int pageSize_;
  /**
   *
   *
   * <pre>
   * The maximum number of photos to return.
   * `pageSize` must be non-negative. If `pageSize` is zero or is not provided,
   * the default page size of 100 is used.
   * The number of photos returned in the response may be less than `pageSize`
   * if the number of photos that belong to the user is less than `pageSize`.
   * </pre>
   *
   * <code>int32 page_size = 2;</code>
   */
  public int getPageSize() {
    return pageSize_;
  }

  public static final int PAGE_TOKEN_FIELD_NUMBER = 3;
  private volatile java.lang.Object pageToken_;
  /**
   *
   *
   * <pre>
   * The
   * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
   * value returned from a previous
   * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
   * request, if any.
   * </pre>
   *
   * <code>string page_token = 3;</code>
   */
  public java.lang.String getPageToken() {
    java.lang.Object ref = pageToken_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      pageToken_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * The
   * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
   * value returned from a previous
   * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
   * request, if any.
   * </pre>
   *
   * <code>string page_token = 3;</code>
   */
  public com.google.protobuf.ByteString getPageTokenBytes() {
    java.lang.Object ref = pageToken_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      pageToken_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int FILTER_FIELD_NUMBER = 4;
  private volatile java.lang.Object filter_;
  /**
   *
   *
   * <pre>
   * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
   * The only filter supported at the moment is `placeId`.
   * </pre>
   *
   * <code>string filter = 4;</code>
   */
  public java.lang.String getFilter() {
    java.lang.Object ref = filter_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      filter_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
   * The only filter supported at the moment is `placeId`.
   * </pre>
   *
   * <code>string filter = 4;</code>
   */
  public com.google.protobuf.ByteString getFilterBytes() {
    java.lang.Object ref = filter_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      filter_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int LANGUAGE_CODE_FIELD_NUMBER = 5;
  private volatile java.lang.Object languageCode_;
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 5;</code>
   */
  public java.lang.String getLanguageCode() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      languageCode_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
   * information, see
   * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
   * If language_code is unspecified, the user's language preference for Google
   * services is used.
   * </pre>
   *
   * <code>string language_code = 5;</code>
   */
  public com.google.protobuf.ByteString getLanguageCodeBytes() {
    java.lang.Object ref = languageCode_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      languageCode_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      output.writeEnum(1, view_);
    }
    if (pageSize_ != 0) {
      output.writeInt32(2, pageSize_);
    }
    if (!getPageTokenBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pageToken_);
    }
    if (!getFilterBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 4, filter_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, languageCode_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (view_
        != com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.BASIC
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, view_);
    }
    if (pageSize_ != 0) {
      size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, pageSize_);
    }
    if (!getPageTokenBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pageToken_);
    }
    if (!getFilterBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, filter_);
    }
    if (!getLanguageCodeBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, languageCode_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosRequest)
                obj;

    boolean result = true;
    result = result && view_ == other.view_;
    result = result && (getPageSize() == other.getPageSize());
    result = result && getPageToken().equals(other.getPageToken());
    result = result && getFilter().equals(other.getFilter());
    result = result && getLanguageCode().equals(other.getLanguageCode());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + VIEW_FIELD_NUMBER;
    hash = (53 * hash) + view_;
    hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
    hash = (53 * hash) + getPageSize();
    hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
    hash = (53 * hash) + getPageToken().hashCode();
    hash = (37 * hash) + FILTER_FIELD_NUMBER;
    hash = (53 * hash) + getFilter().hashCode();
    hash = (37 * hash) + LANGUAGE_CODE_FIELD_NUMBER;
    hash = (53 * hash) + getLanguageCode().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to list all photos that belong to the user sending the request.
   * By default
   * * does not return the download URL for the photo bytes.
   * Parameters:
   * * `view` controls if the download URL for the photo bytes is returned.
   * * `pageSize` determines the maximum number of photos to return.
   * * `pageToken` is the next page token value returned from a previous
   * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
   *     request, if any.
   * * `filter` allows filtering by a given parameter. 'placeId' is the only
   * parameter supported at the moment.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.ListPhotosRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.ListPhotosRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      view_ = 0;

      pageSize_ = 0;

      pageToken_ = "";

      filter_ = "";

      languageCode_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosRequest(this);
      result.view_ = view_;
      result.pageSize_ = pageSize_;
      result.pageToken_ = pageToken_;
      result.filter_ = filter_;
      result.languageCode_ = languageCode_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .ListPhotosRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .ListPhotosRequest.getDefaultInstance()) return this;
      if (other.view_ != 0) {
        setViewValue(other.getViewValue());
      }
      if (other.getPageSize() != 0) {
        setPageSize(other.getPageSize());
      }
      if (!other.getPageToken().isEmpty()) {
        pageToken_ = other.pageToken_;
        onChanged();
      }
      if (!other.getFilter().isEmpty()) {
        filter_ = other.filter_;
        onChanged();
      }
      if (!other.getLanguageCode().isEmpty()) {
        languageCode_ = other.languageCode_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int view_ = 0;
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photos bytes should be returned in the
     * Photos response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
     */
    public int getViewValue() {
      return view_;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photos bytes should be returned in the
     * Photos response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
     */
    public Builder setViewValue(int value) {
      view_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photos bytes should be returned in the
     * Photos response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
        getView() {
      @SuppressWarnings("deprecation")
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView result =
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView.valueOf(
              view_);
      return result == null
          ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView
              .UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photos bytes should be returned in the
     * Photos response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
     */
    public Builder setView(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.PhotoView value) {
      if (value == null) {
        throw new NullPointerException();
      }

      view_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Specifies if a download URL for the photos bytes should be returned in the
     * Photos response.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.PhotoView view = 1;</code>
     */
    public Builder clearView() {

      view_ = 0;
      onChanged();
      return this;
    }

    private int pageSize_;
    /**
     *
     *
     * <pre>
     * The maximum number of photos to return.
     * `pageSize` must be non-negative. If `pageSize` is zero or is not provided,
     * the default page size of 100 is used.
     * The number of photos returned in the response may be less than `pageSize`
     * if the number of photos that belong to the user is less than `pageSize`.
     * </pre>
     *
     * <code>int32 page_size = 2;</code>
     */
    public int getPageSize() {
      return pageSize_;
    }
    /**
     *
     *
     * <pre>
     * The maximum number of photos to return.
     * `pageSize` must be non-negative. If `pageSize` is zero or is not provided,
     * the default page size of 100 is used.
     * The number of photos returned in the response may be less than `pageSize`
     * if the number of photos that belong to the user is less than `pageSize`.
     * </pre>
     *
     * <code>int32 page_size = 2;</code>
     */
    public Builder setPageSize(int value) {

      pageSize_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The maximum number of photos to return.
     * `pageSize` must be non-negative. If `pageSize` is zero or is not provided,
     * the default page size of 100 is used.
     * The number of photos returned in the response may be less than `pageSize`
     * if the number of photos that belong to the user is less than `pageSize`.
     * </pre>
     *
     * <code>int32 page_size = 2;</code>
     */
    public Builder clearPageSize() {

      pageSize_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object pageToken_ = "";
    /**
     *
     *
     * <pre>
     * The
     * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
     * value returned from a previous
     * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
     * request, if any.
     * </pre>
     *
     * <code>string page_token = 3;</code>
     */
    public java.lang.String getPageToken() {
      java.lang.Object ref = pageToken_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        pageToken_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The
     * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
     * value returned from a previous
     * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
     * request, if any.
     * </pre>
     *
     * <code>string page_token = 3;</code>
     */
    public com.google.protobuf.ByteString getPageTokenBytes() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The
     * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
     * value returned from a previous
     * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
     * request, if any.
     * </pre>
     *
     * <code>string page_token = 3;</code>
     */
    public Builder setPageToken(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      pageToken_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The
     * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
     * value returned from a previous
     * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
     * request, if any.
     * </pre>
     *
     * <code>string page_token = 3;</code>
     */
    public Builder clearPageToken() {

      pageToken_ = getDefaultInstance().getPageToken();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The
     * [nextPageToken][google.streetview.publish.v1.ListPhotosResponse.next_page_token]
     * value returned from a previous
     * [ListPhotos][google.streetview.publish.v1.StreetViewPublishService.ListPhotos]
     * request, if any.
     * </pre>
     *
     * <code>string page_token = 3;</code>
     */
    public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      pageToken_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object filter_ = "";
    /**
     *
     *
     * <pre>
     * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
     * The only filter supported at the moment is `placeId`.
     * </pre>
     *
     * <code>string filter = 4;</code>
     */
    public java.lang.String getFilter() {
      java.lang.Object ref = filter_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        filter_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
     * The only filter supported at the moment is `placeId`.
     * </pre>
     *
     * <code>string filter = 4;</code>
     */
    public com.google.protobuf.ByteString getFilterBytes() {
      java.lang.Object ref = filter_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        filter_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
     * The only filter supported at the moment is `placeId`.
     * </pre>
     *
     * <code>string filter = 4;</code>
     */
    public Builder setFilter(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      filter_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
     * The only filter supported at the moment is `placeId`.
     * </pre>
     *
     * <code>string filter = 4;</code>
     */
    public Builder clearFilter() {

      filter_ = getDefaultInstance().getFilter();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The filter expression. For example: `placeId=ChIJj61dQgK6j4AR4GeTYWZsKWw`.
     * The only filter supported at the moment is `placeId`.
     * </pre>
     *
     * <code>string filter = 4;</code>
     */
    public Builder setFilterBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      filter_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object languageCode_ = "";
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 5;</code>
     */
    public java.lang.String getLanguageCode() {
      java.lang.Object ref = languageCode_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        languageCode_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 5;</code>
     */
    public com.google.protobuf.ByteString getLanguageCodeBytes() {
      java.lang.Object ref = languageCode_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        languageCode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 5;</code>
     */
    public Builder setLanguageCode(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      languageCode_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 5;</code>
     */
    public Builder clearLanguageCode() {

      languageCode_ = getDefaultInstance().getLanguageCode();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * The BCP-47 language code, such as "en-US" or "sr-Latn". For more
     * information, see
     * http://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
     * If language_code is unspecified, the user's language preference for Google
     * services is used.
     * </pre>
     *
     * <code>string language_code = 5;</code>
     */
    public Builder setLanguageCodeBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      languageCode_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.ListPhotosRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.ListPhotosRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<ListPhotosRequest> PARSER =
      new com.google.protobuf.AbstractParser<ListPhotosRequest>() {
        @java.lang.Override
        public ListPhotosRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ListPhotosRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<ListPhotosRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<ListPhotosRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class ListPhotosResponse extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.ListPhotosResponse)
    ListPhotosResponseOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use ListPhotosResponse.newBuilder() to construct.
  private ListPhotosResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private ListPhotosResponse() {
    photos_ = java.util.Collections.emptyList();
    nextPageToken_ = "";
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private ListPhotosResponse(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                photos_ =
                    new java.util.ArrayList<
                        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                            .Photo>();
                mutable_bitField0_ |= 0x00000001;
              }
              photos_.add(
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                          .parser(),
                      extensionRegistry));
              break;
            }
          case 18:
            {
              java.lang.String s = input.readStringRequireUtf8();

              nextPageToken_ = s;
              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
        photos_ = java.util.Collections.unmodifiableList(photos_);
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_ListPhotosResponse_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_ListPhotosResponse_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .ListPhotosResponse.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .ListPhotosResponse.Builder.class);
  }

  private int bitField0_;
  public static final int PHOTOS_FIELD_NUMBER = 1;
  private java.util.List<
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>
      photos_;
  /**
   *
   *
   * <pre>
   * List of photos. The
   * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
   * in the request determines the number of items returned.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
   */
  public java.util.List<com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>
      getPhotosList() {
    return photos_;
  }
  /**
   *
   *
   * <pre>
   * List of photos. The
   * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
   * in the request determines the number of items returned.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
   */
  public java.util.List<
          ? extends
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
      getPhotosOrBuilderList() {
    return photos_;
  }
  /**
   *
   *
   * <pre>
   * List of photos. The
   * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
   * in the request determines the number of items returned.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
   */
  public int getPhotosCount() {
    return photos_.size();
  }
  /**
   *
   *
   * <pre>
   * List of photos. The
   * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
   * in the request determines the number of items returned.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhotos(
      int index) {
    return photos_.get(index);
  }
  /**
   *
   *
   * <pre>
   * List of photos. The
   * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
   * in the request determines the number of items returned.
   * </pre>
   *
   * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
      getPhotosOrBuilder(int index) {
    return photos_.get(index);
  }

  public static final int NEXT_PAGE_TOKEN_FIELD_NUMBER = 2;
  private volatile java.lang.Object nextPageToken_;
  /**
   *
   *
   * <pre>
   * Token to retrieve the next page of results, or empty if there are no more
   * results in the list.
   * </pre>
   *
   * <code>string next_page_token = 2;</code>
   */
  public java.lang.String getNextPageToken() {
    java.lang.Object ref = nextPageToken_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      nextPageToken_ = s;
      return s;
    }
  }
  /**
   *
   *
   * <pre>
   * Token to retrieve the next page of results, or empty if there are no more
   * results in the list.
   * </pre>
   *
   * <code>string next_page_token = 2;</code>
   */
  public com.google.protobuf.ByteString getNextPageTokenBytes() {
    java.lang.Object ref = nextPageToken_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      nextPageToken_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    for (int i = 0; i < photos_.size(); i++) {
      output.writeMessage(1, photos_.get(i));
    }
    if (!getNextPageTokenBytes().isEmpty()) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, nextPageToken_);
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    for (int i = 0; i < photos_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, photos_.get(i));
    }
    if (!getNextPageTokenBytes().isEmpty()) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, nextPageToken_);
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosResponse)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosResponse)
                obj;

    boolean result = true;
    result = result && getPhotosList().equals(other.getPhotosList());
    result = result && getNextPageToken().equals(other.getNextPageToken());
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (getPhotosCount() > 0) {
      hash = (37 * hash) + PHOTOS_FIELD_NUMBER;
      hash = (53 * hash) + getPhotosList().hashCode();
    }
    hash = (37 * hash) + NEXT_PAGE_TOKEN_FIELD_NUMBER;
    hash = (53 * hash) + getNextPageToken().hashCode();
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Response to list all photos that belong to a user.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.ListPhotosResponse}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.ListPhotosResponse)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponseOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosResponse.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosResponse.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getPhotosFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (photosBuilder_ == null) {
        photos_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
      } else {
        photosBuilder_.clear();
      }
      nextPageToken_ = "";

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_ListPhotosResponse_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosResponse
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosResponse
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosResponse
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .ListPhotosResponse(this);
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      if (photosBuilder_ == null) {
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          photos_ = java.util.Collections.unmodifiableList(photos_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.photos_ = photos_;
      } else {
        result.photos_ = photosBuilder_.build();
      }
      result.nextPageToken_ = nextPageToken_;
      result.bitField0_ = to_bitField0_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .ListPhotosResponse) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosResponse)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .ListPhotosResponse.getDefaultInstance()) return this;
      if (photosBuilder_ == null) {
        if (!other.photos_.isEmpty()) {
          if (photos_.isEmpty()) {
            photos_ = other.photos_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePhotosIsMutable();
            photos_.addAll(other.photos_);
          }
          onChanged();
        }
      } else {
        if (!other.photos_.isEmpty()) {
          if (photosBuilder_.isEmpty()) {
            photosBuilder_.dispose();
            photosBuilder_ = null;
            photos_ = other.photos_;
            bitField0_ = (bitField0_ & ~0x00000001);
            photosBuilder_ =
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                    ? getPhotosFieldBuilder()
                    : null;
          } else {
            photosBuilder_.addAllMessages(other.photos_);
          }
        }
      }
      if (!other.getNextPageToken().isEmpty()) {
        nextPageToken_ = other.nextPageToken_;
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .ListPhotosResponse)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private int bitField0_;

    private java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>
        photos_ = java.util.Collections.emptyList();

    private void ensurePhotosIsMutable() {
      if (!((bitField0_ & 0x00000001) == 0x00000001)) {
        photos_ =
            new java.util.ArrayList<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>(
                photos_);
        bitField0_ |= 0x00000001;
      }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        photosBuilder_;

    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>
        getPhotosList() {
      if (photosBuilder_ == null) {
        return java.util.Collections.unmodifiableList(photos_);
      } else {
        return photosBuilder_.getMessageList();
      }
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public int getPhotosCount() {
      if (photosBuilder_ == null) {
        return photos_.size();
      } else {
        return photosBuilder_.getCount();
      }
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhotos(
        int index) {
      if (photosBuilder_ == null) {
        return photos_.get(index);
      } else {
        return photosBuilder_.getMessage(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder setPhotos(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photosBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePhotosIsMutable();
        photos_.set(index, value);
        onChanged();
      } else {
        photosBuilder_.setMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder setPhotos(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
            builderForValue) {
      if (photosBuilder_ == null) {
        ensurePhotosIsMutable();
        photos_.set(index, builderForValue.build());
        onChanged();
      } else {
        photosBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder addPhotos(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photosBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePhotosIsMutable();
        photos_.add(value);
        onChanged();
      } else {
        photosBuilder_.addMessage(value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder addPhotos(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photosBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePhotosIsMutable();
        photos_.add(index, value);
        onChanged();
      } else {
        photosBuilder_.addMessage(index, value);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder addPhotos(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
            builderForValue) {
      if (photosBuilder_ == null) {
        ensurePhotosIsMutable();
        photos_.add(builderForValue.build());
        onChanged();
      } else {
        photosBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder addPhotos(
        int index,
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
            builderForValue) {
      if (photosBuilder_ == null) {
        ensurePhotosIsMutable();
        photos_.add(index, builderForValue.build());
        onChanged();
      } else {
        photosBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder addAllPhotos(
        java.lang.Iterable<
                ? extends
                    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo>
            values) {
      if (photosBuilder_ == null) {
        ensurePhotosIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, photos_);
        onChanged();
      } else {
        photosBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder clearPhotos() {
      if (photosBuilder_ == null) {
        photos_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
      } else {
        photosBuilder_.clear();
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public Builder removePhotos(int index) {
      if (photosBuilder_ == null) {
        ensurePhotosIsMutable();
        photos_.remove(index);
        onChanged();
      } else {
        photosBuilder_.remove(index);
      }
      return this;
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
        getPhotosBuilder(int index) {
      return getPhotosFieldBuilder().getBuilder(index);
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
        getPhotosOrBuilder(int index) {
      if (photosBuilder_ == null) {
        return photos_.get(index);
      } else {
        return photosBuilder_.getMessageOrBuilder(index);
      }
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public java.util.List<
            ? extends
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PhotoOrBuilder>
        getPhotosOrBuilderList() {
      if (photosBuilder_ != null) {
        return photosBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(photos_);
      }
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
        addPhotosBuilder() {
      return getPhotosFieldBuilder()
          .addBuilder(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
        addPhotosBuilder(int index) {
      return getPhotosFieldBuilder()
          .addBuilder(
              index,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .getDefaultInstance());
    }
    /**
     *
     *
     * <pre>
     * List of photos. The
     * [pageSize][google.streetview.publish.v1.ListPhotosRequest.page_size] field
     * in the request determines the number of items returned.
     * </pre>
     *
     * <code>repeated .google.streetview.publish.v1.Photo photos = 1;</code>
     */
    public java.util.List<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder>
        getPhotosBuilderList() {
      return getPhotosFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        getPhotosFieldBuilder() {
      if (photosBuilder_ == null) {
        photosBuilder_ =
            new com.google.protobuf.RepeatedFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PhotoOrBuilder>(
                photos_,
                ((bitField0_ & 0x00000001) == 0x00000001),
                getParentForChildren(),
                isClean());
        photos_ = null;
      }
      return photosBuilder_;
    }

    private java.lang.Object nextPageToken_ = "";
    /**
     *
     *
     * <pre>
     * Token to retrieve the next page of results, or empty if there are no more
     * results in the list.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     */
    public java.lang.String getNextPageToken() {
      java.lang.Object ref = nextPageToken_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nextPageToken_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Token to retrieve the next page of results, or empty if there are no more
     * results in the list.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     */
    public com.google.protobuf.ByteString getNextPageTokenBytes() {
      java.lang.Object ref = nextPageToken_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        nextPageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     * <pre>
     * Token to retrieve the next page of results, or empty if there are no more
     * results in the list.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     */
    public Builder setNextPageToken(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      nextPageToken_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Token to retrieve the next page of results, or empty if there are no more
     * results in the list.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     */
    public Builder clearNextPageToken() {

      nextPageToken_ = getDefaultInstance().getNextPageToken();
      onChanged();
      return this;
    }
    /**
     *
     *
     * <pre>
     * Token to retrieve the next page of results, or empty if there are no more
     * results in the list.
     * </pre>
     *
     * <code>string next_page_token = 2;</code>
     */
    public Builder setNextPageTokenBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      nextPageToken_ = value;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.ListPhotosResponse)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.ListPhotosResponse)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .ListPhotosResponse();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .ListPhotosResponse
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<ListPhotosResponse> PARSER =
      new com.google.protobuf.AbstractParser<ListPhotosResponse>() {
        @java.lang.Override
        public ListPhotosResponse parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ListPhotosResponse(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<ListPhotosResponse> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<ListPhotosResponse> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
} public static final class UpdatePhotoRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.streetview.publish.v1.UpdatePhotoRequest)
    UpdatePhotoRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use UpdatePhotoRequest.newBuilder() to construct.
  private UpdatePhotoRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private UpdatePhotoRequest() {}

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  private UpdatePhotoRequest(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new java.lang.NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 10:
            {
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
                  subBuilder = null;
              if (photo_ != null) {
                subBuilder = photo_.toBuilder();
              }
              photo_ =
                  input.readMessage(
                      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                          .parser(),
                      extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(photo_);
                photo_ = subBuilder.buildPartial();
              }

              break;
            }
          case 18:
            {
              com.google.protobuf.FieldMask.Builder subBuilder = null;
              if (updateMask_ != null) {
                subBuilder = updateMask_.toBuilder();
              }
              updateMask_ =
                  input.readMessage(com.google.protobuf.FieldMask.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(updateMask_);
                updateMask_ = subBuilder.buildPartial();
              }

              break;
            }
          default:
            {
              if (!parseUnknownFieldProto3(input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
    } finally {
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_UpdatePhotoRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
        .internal_static_google_streetview_publish_v1_UpdatePhotoRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest.class,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                .UpdatePhotoRequest.Builder.class);
  }

  public static final int PHOTO_FIELD_NUMBER = 1;
  private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo photo_;
  /**
   *
   *
   * <pre>
   * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
   * new metadata.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public boolean hasPhoto() {
    return photo_ != null;
  }
  /**
   *
   *
   * <pre>
   * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
   * new metadata.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhoto() {
    return photo_ == null
        ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
            .getDefaultInstance()
        : photo_;
  }
  /**
   *
   *
   * <pre>
   * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
   * new metadata.
   * </pre>
   *
   * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
   */
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
      getPhotoOrBuilder() {
    return getPhoto();
  }

  public static final int UPDATE_MASK_FIELD_NUMBER = 2;
  private com.google.protobuf.FieldMask updateMask_;
  /**
   *
   *
   * <pre>
   * Mask that identifies fields on the photo metadata to update.
   * If not present, the old [Photo][google.streetview.publish.v1.Photo]
   * metadata is entirely replaced with the
   * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
   * The update fails if invalid fields are specified. Multiple fields can be
   * specified in a comma-delimited list.
   * The following fields are valid:
   * * `pose.heading`
   * * `pose.latLngPair`
   * * `pose.pitch`
   * * `pose.roll`
   * * `pose.level`
   * * `pose.altitude`
   * * `connections`
   * * `places`
   * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains repeated fields, the entire set of repeated values get replaced
   * with the new contents. For example, if
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
   * all connections are removed.&lt;/aside&gt;
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  public boolean hasUpdateMask() {
    return updateMask_ != null;
  }
  /**
   *
   *
   * <pre>
   * Mask that identifies fields on the photo metadata to update.
   * If not present, the old [Photo][google.streetview.publish.v1.Photo]
   * metadata is entirely replaced with the
   * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
   * The update fails if invalid fields are specified. Multiple fields can be
   * specified in a comma-delimited list.
   * The following fields are valid:
   * * `pose.heading`
   * * `pose.latLngPair`
   * * `pose.pitch`
   * * `pose.roll`
   * * `pose.level`
   * * `pose.altitude`
   * * `connections`
   * * `places`
   * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains repeated fields, the entire set of repeated values get replaced
   * with the new contents. For example, if
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
   * all connections are removed.&lt;/aside&gt;
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  public com.google.protobuf.FieldMask getUpdateMask() {
    return updateMask_ == null ? com.google.protobuf.FieldMask.getDefaultInstance() : updateMask_;
  }
  /**
   *
   *
   * <pre>
   * Mask that identifies fields on the photo metadata to update.
   * If not present, the old [Photo][google.streetview.publish.v1.Photo]
   * metadata is entirely replaced with the
   * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
   * The update fails if invalid fields are specified. Multiple fields can be
   * specified in a comma-delimited list.
   * The following fields are valid:
   * * `pose.heading`
   * * `pose.latLngPair`
   * * `pose.pitch`
   * * `pose.roll`
   * * `pose.level`
   * * `pose.altitude`
   * * `connections`
   * * `places`
   * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains repeated fields, the entire set of repeated values get replaced
   * with the new contents. For example, if
   * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
   * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
   * all connections are removed.&lt;/aside&gt;
   * </pre>
   *
   * <code>.google.protobuf.FieldMask update_mask = 2;</code>
   */
  public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
    return getUpdateMask();
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (photo_ != null) {
      output.writeMessage(1, getPhoto());
    }
    if (updateMask_ != null) {
      output.writeMessage(2, getUpdateMask());
    }
    unknownFields.writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (photo_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPhoto());
    }
    if (updateMask_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getUpdateMask());
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj
        instanceof
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest)) {
      return super.equals(obj);
    }
    com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
        other =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest)
                obj;

    boolean result = true;
    result = result && (hasPhoto() == other.hasPhoto());
    if (hasPhoto()) {
      result = result && getPhoto().equals(other.getPhoto());
    }
    result = result && (hasUpdateMask() == other.hasUpdateMask());
    if (hasUpdateMask()) {
      result = result && getUpdateMask().equals(other.getUpdateMask());
    }
    result = result && unknownFields.equals(other.unknownFields);
    return result;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    if (hasPhoto()) {
      hash = (37 * hash) + PHOTO_FIELD_NUMBER;
      hash = (53 * hash) + getPhoto().hashCode();
    }
    if (hasUpdateMask()) {
      hash = (37 * hash) + UPDATE_MASK_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateMask().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(
          java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseDelimitedFrom(
          java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
          prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(
      com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   * <pre>
   * Request to update the metadata of a
   * [Photo][google.streetview.publish.v1.Photo]. Updating the pixels of a photo
   * is not supported.
   * </pre>
   *
   * Protobuf type {@code google.streetview.publish.v1.UpdatePhotoRequest}
   */
  public static final class Builder
      extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.streetview.publish.v1.UpdatePhotoRequest)
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_UpdatePhotoRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_UpdatePhotoRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequest.class,
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequest.Builder.class);
    }

    // Construct using
    // com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      if (photoBuilder_ == null) {
        photo_ = null;
      } else {
        photo_ = null;
        photoBuilder_ = null;
      }
      if (updateMaskBuilder_ == null) {
        updateMask_ = null;
      } else {
        updateMask_ = null;
        updateMaskBuilder_ = null;
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .internal_static_google_streetview_publish_v1_UpdatePhotoRequest_descriptor;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest
        getDefaultInstanceForType() {
      return com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest
        build() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
          result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest
        buildPartial() {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
          result =
              new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                  .UpdatePhotoRequest(this);
      if (photoBuilder_ == null) {
        result.photo_ = photo_;
      } else {
        result.photo_ = photoBuilder_.build();
      }
      if (updateMaskBuilder_ == null) {
        result.updateMask_ = updateMask_;
      } else {
        result.updateMask_ = updateMaskBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return (Builder) super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return (Builder) super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return (Builder) super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index,
        java.lang.Object value) {
      return (Builder) super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return (Builder) super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other
          instanceof
          com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .UpdatePhotoRequest) {
        return mergeFrom(
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest)
                other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
            other) {
      if (other
          == com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
              .UpdatePhotoRequest.getDefaultInstance()) return this;
      if (other.hasPhoto()) {
        mergePhoto(other.getPhoto());
      }
      if (other.hasUpdateMask()) {
        mergeUpdateMask(other.getUpdateMask());
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
          parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage =
            (com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
                    .UpdatePhotoRequest)
                e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }

    private com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo photo_ =
        null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        photoBuilder_;
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public boolean hasPhoto() {
      return photoBuilder_ != null || photo_ != null;
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo getPhoto() {
      if (photoBuilder_ == null) {
        return photo_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .getDefaultInstance()
            : photo_;
      } else {
        return photoBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder setPhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photoBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        photo_ = value;
        onChanged();
      } else {
        photoBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder setPhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
            builderForValue) {
      if (photoBuilder_ == null) {
        photo_ = builderForValue.build();
        onChanged();
      } else {
        photoBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder mergePhoto(
        com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo value) {
      if (photoBuilder_ == null) {
        if (photo_ != null) {
          photo_ =
              com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                  .newBuilder(photo_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          photo_ = value;
        }
        onChanged();
      } else {
        photoBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public Builder clearPhoto() {
      if (photoBuilder_ == null) {
        photo_ = null;
        onChanged();
      } else {
        photo_ = null;
        photoBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder
        getPhotoBuilder() {

      onChanged();
      return getPhotoFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder
        getPhotoOrBuilder() {
      if (photoBuilder_ != null) {
        return photoBuilder_.getMessageOrBuilder();
      } else {
        return photo_ == null
            ? com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo
                .getDefaultInstance()
            : photo_;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. [Photo][google.streetview.publish.v1.Photo] object containing the
     * new metadata.
     * </pre>
     *
     * <code>.google.streetview.publish.v1.Photo photo = 1;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
            com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.PhotoOrBuilder>
        getPhotoFieldBuilder() {
      if (photoBuilder_ == null) {
        photoBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo.Builder,
                com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources
                    .PhotoOrBuilder>(getPhoto(), getParentForChildren(), isClean());
        photo_ = null;
      }
      return photoBuilder_;
    }

    private com.google.protobuf.FieldMask updateMask_ = null;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.FieldMask,
            com.google.protobuf.FieldMask.Builder,
            com.google.protobuf.FieldMaskOrBuilder>
        updateMaskBuilder_;
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public boolean hasUpdateMask() {
      return updateMaskBuilder_ != null || updateMask_ != null;
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public com.google.protobuf.FieldMask getUpdateMask() {
      if (updateMaskBuilder_ == null) {
        return updateMask_ == null
            ? com.google.protobuf.FieldMask.getDefaultInstance()
            : updateMask_;
      } else {
        return updateMaskBuilder_.getMessage();
      }
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public Builder setUpdateMask(com.google.protobuf.FieldMask value) {
      if (updateMaskBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        updateMask_ = value;
        onChanged();
      } else {
        updateMaskBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public Builder setUpdateMask(com.google.protobuf.FieldMask.Builder builderForValue) {
      if (updateMaskBuilder_ == null) {
        updateMask_ = builderForValue.build();
        onChanged();
      } else {
        updateMaskBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public Builder mergeUpdateMask(com.google.protobuf.FieldMask value) {
      if (updateMaskBuilder_ == null) {
        if (updateMask_ != null) {
          updateMask_ =
              com.google.protobuf.FieldMask.newBuilder(updateMask_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          updateMask_ = value;
        }
        onChanged();
      } else {
        updateMaskBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public Builder clearUpdateMask() {
      if (updateMaskBuilder_ == null) {
        updateMask_ = null;
        onChanged();
      } else {
        updateMask_ = null;
        updateMaskBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public com.google.protobuf.FieldMask.Builder getUpdateMaskBuilder() {

      onChanged();
      return getUpdateMaskFieldBuilder().getBuilder();
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    public com.google.protobuf.FieldMaskOrBuilder getUpdateMaskOrBuilder() {
      if (updateMaskBuilder_ != null) {
        return updateMaskBuilder_.getMessageOrBuilder();
      } else {
        return updateMask_ == null
            ? com.google.protobuf.FieldMask.getDefaultInstance()
            : updateMask_;
      }
    }
    /**
     *
     *
     * <pre>
     * Mask that identifies fields on the photo metadata to update.
     * If not present, the old [Photo][google.streetview.publish.v1.Photo]
     * metadata is entirely replaced with the
     * new [Photo][google.streetview.publish.v1.Photo] metadata in this request.
     * The update fails if invalid fields are specified. Multiple fields can be
     * specified in a comma-delimited list.
     * The following fields are valid:
     * * `pose.heading`
     * * `pose.latLngPair`
     * * `pose.pitch`
     * * `pose.roll`
     * * `pose.level`
     * * `pose.altitude`
     * * `connections`
     * * `places`
     * &lt;aside class="note"&gt;&lt;b&gt;Note:&lt;/b&gt;  When
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains repeated fields, the entire set of repeated values get replaced
     * with the new contents. For example, if
     * [updateMask][google.streetview.publish.v1.UpdatePhotoRequest.update_mask]
     * contains `connections` and `UpdatePhotoRequest.photo.connections` is empty,
     * all connections are removed.&lt;/aside&gt;
     * </pre>
     *
     * <code>.google.protobuf.FieldMask update_mask = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.FieldMask,
            com.google.protobuf.FieldMask.Builder,
            com.google.protobuf.FieldMaskOrBuilder>
        getUpdateMaskFieldBuilder() {
      if (updateMaskBuilder_ == null) {
        updateMaskBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.FieldMask,
                com.google.protobuf.FieldMask.Builder,
                com.google.protobuf.FieldMaskOrBuilder>(
                getUpdateMask(), getParentForChildren(), isClean());
        updateMask_ = null;
      }
      return updateMaskBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFieldsProto3(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.streetview.publish.v1.UpdatePhotoRequest)
  }

  // @@protoc_insertion_point(class_scope:google.streetview.publish.v1.UpdatePhotoRequest)
  private static final com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE =
        new com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
            .UpdatePhotoRequest();
  }

  public static com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages
          .UpdatePhotoRequest
      getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<UpdatePhotoRequest> PARSER =
      new com.google.protobuf.AbstractParser<UpdatePhotoRequest>() {
        @java.lang.Override
        public UpdatePhotoRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new UpdatePhotoRequest(input, extensionRegistry);
        }
      };

  public static com.google.protobuf.Parser<UpdatePhotoRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<UpdatePhotoRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest
      getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
}
import static com.google.streetview.publish.v1.StreetViewPublishServiceClient.ListPhotosPagedResponse;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.BackgroundResource;
import com.google.api.gax.rpc.UnaryCallable;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.Photo;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishResources.UploadRef;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchDeletePhotosRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchDeletePhotosResponse;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchGetPhotosResponse;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchUpdatePhotosRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.BatchUpdatePhotosResponse;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.CreatePhotoRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.DeletePhotoRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.GetPhotoRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosRequest;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.ListPhotosResponse;
import com.google.geo.ugc.streetview.publish.v1.StreetViewPublishRpcMessages.UpdatePhotoRequest;
import com.google.protobuf.Empty;
import javax.annotation.Generated;
/*
 * Copyright 2019 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.
 */
package com.google.streetview.publish.v1.stub;



// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
 * Base stub class for Street View Publish API.
 *
 * <p>This class is for advanced usage and reflects the underlying API directly.
 */
@Generated("by gapic-generator")
@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
public abstract class StreetViewPublishServiceStub implements BackgroundResource {

  public UnaryCallable<Empty, UploadRef> startUploadCallable() {
    throw new UnsupportedOperationException("Not implemented: startUploadCallable()");
  }

  public UnaryCallable<CreatePhotoRequest, Photo> createPhotoCallable() {
    throw new UnsupportedOperationException("Not implemented: createPhotoCallable()");
  }

  public UnaryCallable<GetPhotoRequest, Photo> getPhotoCallable() {
    throw new UnsupportedOperationException("Not implemented: getPhotoCallable()");
  }

  public UnaryCallable<BatchGetPhotosRequest, BatchGetPhotosResponse> batchGetPhotosCallable() {