yandex.cloud.api.containerregistry.v1.Scanner Maven / Gradle / Ivy
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: yandex/cloud/containerregistry/v1/scanner.proto
package yandex.cloud.api.containerregistry.v1;
public final class Scanner {
  private Scanner() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ScanResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.containerregistry.v1.ScanResult)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Output only. ID of the ScanResult.
     * 
     *
     * string id = 1;
     * @return The id.
     */
    java.lang.String getId();
    /**
     * 
     * Output only. ID of the ScanResult.
     * 
     *
     * string id = 1;
     * @return The bytes for id.
     */
    com.google.protobuf.ByteString
        getIdBytes();
    /**
     * 
     * Output only. ID of the Image that the ScanResult belongs to.
     * 
     *
     * string image_id = 2;
     * @return The imageId.
     */
    java.lang.String getImageId();
    /**
     * 
     * Output only. ID of the Image that the ScanResult belongs to.
     * 
     *
     * string image_id = 2;
     * @return The bytes for imageId.
     */
    com.google.protobuf.ByteString
        getImageIdBytes();
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     * @return Whether the scannedAt field is set.
     */
    boolean hasScannedAt();
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     * @return The scannedAt.
     */
    com.google.protobuf.Timestamp getScannedAt();
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     */
    com.google.protobuf.TimestampOrBuilder getScannedAtOrBuilder();
    /**
     * 
     * Output only. The status of the ScanResult.
     * 
     *
     * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
     * @return The enum numeric value on the wire for status.
     */
    int getStatusValue();
    /**
     * 
     * Output only. The status of the ScanResult.
     * 
     *
     * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
     * @return The status.
     */
    yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status getStatus();
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     * @return Whether the vulnerabilities field is set.
     */
    boolean hasVulnerabilities();
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     * @return The vulnerabilities.
     */
    yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getVulnerabilities();
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     */
    yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder getVulnerabilitiesOrBuilder();
  }
  /**
   * 
   * A ScanResult resource.
   * 
   *
   * Protobuf type {@code yandex.cloud.containerregistry.v1.ScanResult}
   */
  public static final class ScanResult extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.containerregistry.v1.ScanResult)
      ScanResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ScanResult.newBuilder() to construct.
    private ScanResult(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private ScanResult() {
      id_ = "";
      imageId_ = "";
      status_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ScanResult();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ScanResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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();
              id_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              imageId_ = s;
              break;
            }
            case 26: {
              com.google.protobuf.Timestamp.Builder subBuilder = null;
              if (scannedAt_ != null) {
                subBuilder = scannedAt_.toBuilder();
              }
              scannedAt_ = input.readMessage(com.google.protobuf.Timestamp.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(scannedAt_);
                scannedAt_ = subBuilder.buildPartial();
              }
              break;
            }
            case 32: {
              int rawValue = input.readEnum();
              status_ = rawValue;
              break;
            }
            case 42: {
              yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder subBuilder = null;
              if (vulnerabilities_ != null) {
                subBuilder = vulnerabilities_.toBuilder();
              }
              vulnerabilities_ = input.readMessage(yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(vulnerabilities_);
                vulnerabilities_ = subBuilder.buildPartial();
              }
              break;
            }
            default: {
              if (!parseUnknownField(
                  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 yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_ScanResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.class, yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.containerregistry.v1.ScanResult.Status}
     */
    public enum Status
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * STATUS_UNSPECIFIED = 0;
       */
      STATUS_UNSPECIFIED(0),
      /**
       * 
       * Image scan is in progress.
       * 
       *
       * RUNNING = 1;
       */
      RUNNING(1),
      /**
       * 
       * Image has been scanned and result is ready.
       * 
       *
       * READY = 2;
       */
      READY(2),
      /**
       * 
       * Image scan is failed.
       * 
       *
       * ERROR = 3;
       */
      ERROR(3),
      UNRECOGNIZED(-1),
      ;
      /**
       * STATUS_UNSPECIFIED = 0;
       */
      public static final int STATUS_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * Image scan is in progress.
       * 
       *
       * RUNNING = 1;
       */
      public static final int RUNNING_VALUE = 1;
      /**
       * 
       * Image has been scanned and result is ready.
       * 
       *
       * READY = 2;
       */
      public static final int READY_VALUE = 2;
      /**
       * 
       * Image scan is failed.
       * 
       *
       * ERROR = 3;
       */
      public static final int ERROR_VALUE = 3;
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Status valueOf(int value) {
        return forNumber(value);
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Status forNumber(int value) {
        switch (value) {
          case 0: return STATUS_UNSPECIFIED;
          case 1: return RUNNING;
          case 2: return READY;
          case 3: return ERROR;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Status> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Status findValueByNumber(int number) {
                return Status.forNumber(number);
              }
            };
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.getDescriptor().getEnumTypes().get(0);
      }
      private static final Status[] VALUES = values();
      public static Status 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 Status(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.containerregistry.v1.ScanResult.Status)
    }
    public static final int ID_FIELD_NUMBER = 1;
    private volatile java.lang.Object id_;
    /**
     * 
     * Output only. ID of the ScanResult.
     * 
     *
     * string id = 1;
     * @return The id.
     */
    @java.lang.Override
    public java.lang.String getId() {
      java.lang.Object ref = id_;
      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();
        id_ = s;
        return s;
      }
    }
    /**
     * 
     * Output only. ID of the ScanResult.
     * 
     *
     * string id = 1;
     * @return The bytes for id.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIdBytes() {
      java.lang.Object ref = id_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        id_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int IMAGE_ID_FIELD_NUMBER = 2;
    private volatile java.lang.Object imageId_;
    /**
     * 
     * Output only. ID of the Image that the ScanResult belongs to.
     * 
     *
     * string image_id = 2;
     * @return The imageId.
     */
    @java.lang.Override
    public java.lang.String getImageId() {
      java.lang.Object ref = imageId_;
      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();
        imageId_ = s;
        return s;
      }
    }
    /**
     * 
     * Output only. ID of the Image that the ScanResult belongs to.
     * 
     *
     * string image_id = 2;
     * @return The bytes for imageId.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getImageIdBytes() {
      java.lang.Object ref = imageId_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        imageId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int SCANNED_AT_FIELD_NUMBER = 3;
    private com.google.protobuf.Timestamp scannedAt_;
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     * @return Whether the scannedAt field is set.
     */
    @java.lang.Override
    public boolean hasScannedAt() {
      return scannedAt_ != null;
    }
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     * @return The scannedAt.
     */
    @java.lang.Override
    public com.google.protobuf.Timestamp getScannedAt() {
      return scannedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : scannedAt_;
    }
    /**
     * 
     * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
     * 
     *
     * .google.protobuf.Timestamp scanned_at = 3;
     */
    @java.lang.Override
    public com.google.protobuf.TimestampOrBuilder getScannedAtOrBuilder() {
      return getScannedAt();
    }
    public static final int STATUS_FIELD_NUMBER = 4;
    private int status_;
    /**
     * 
     * Output only. The status of the ScanResult.
     * 
     *
     * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
     * @return The enum numeric value on the wire for status.
     */
    @java.lang.Override public int getStatusValue() {
      return status_;
    }
    /**
     * 
     * Output only. The status of the ScanResult.
     * 
     *
     * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
     * @return The status.
     */
    @java.lang.Override public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status getStatus() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status result = yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.valueOf(status_);
      return result == null ? yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.UNRECOGNIZED : result;
    }
    public static final int VULNERABILITIES_FIELD_NUMBER = 5;
    private yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats vulnerabilities_;
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     * @return Whether the vulnerabilities field is set.
     */
    @java.lang.Override
    public boolean hasVulnerabilities() {
      return vulnerabilities_ != null;
    }
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     * @return The vulnerabilities.
     */
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getVulnerabilities() {
      return vulnerabilities_ == null ? yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.getDefaultInstance() : vulnerabilities_;
    }
    /**
     * 
     * Output only. Summary information about vulnerabilities found.
     * 
     *
     * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
     */
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder getVulnerabilitiesOrBuilder() {
      return getVulnerabilities();
    }
    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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(imageId_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, imageId_);
      }
      if (scannedAt_ != null) {
        output.writeMessage(3, getScannedAt());
      }
      if (status_ != yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.STATUS_UNSPECIFIED.getNumber()) {
        output.writeEnum(4, status_);
      }
      if (vulnerabilities_ != null) {
        output.writeMessage(5, getVulnerabilities());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(imageId_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, imageId_);
      }
      if (scannedAt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getScannedAt());
      }
      if (status_ != yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.STATUS_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, status_);
      }
      if (vulnerabilities_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getVulnerabilities());
      }
      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 yandex.cloud.api.containerregistry.v1.Scanner.ScanResult)) {
        return super.equals(obj);
      }
      yandex.cloud.api.containerregistry.v1.Scanner.ScanResult other = (yandex.cloud.api.containerregistry.v1.Scanner.ScanResult) obj;
      if (!getId()
          .equals(other.getId())) return false;
      if (!getImageId()
          .equals(other.getImageId())) return false;
      if (hasScannedAt() != other.hasScannedAt()) return false;
      if (hasScannedAt()) {
        if (!getScannedAt()
            .equals(other.getScannedAt())) return false;
      }
      if (status_ != other.status_) return false;
      if (hasVulnerabilities() != other.hasVulnerabilities()) return false;
      if (hasVulnerabilities()) {
        if (!getVulnerabilities()
            .equals(other.getVulnerabilities())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + getId().hashCode();
      hash = (37 * hash) + IMAGE_ID_FIELD_NUMBER;
      hash = (53 * hash) + getImageId().hashCode();
      if (hasScannedAt()) {
        hash = (37 * hash) + SCANNED_AT_FIELD_NUMBER;
        hash = (53 * hash) + getScannedAt().hashCode();
      }
      hash = (37 * hash) + STATUS_FIELD_NUMBER;
      hash = (53 * hash) + status_;
      if (hasVulnerabilities()) {
        hash = (37 * hash) + VULNERABILITIES_FIELD_NUMBER;
        hash = (53 * hash) + getVulnerabilities().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult 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 yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult 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 yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult 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(yandex.cloud.api.containerregistry.v1.Scanner.ScanResult 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;
    }
    /**
     * 
     * A ScanResult resource.
     * 
     *
     * Protobuf type {@code yandex.cloud.containerregistry.v1.ScanResult}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.containerregistry.v1.ScanResult)
        yandex.cloud.api.containerregistry.v1.Scanner.ScanResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_ScanResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.class, yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Builder.class);
      }
      // Construct using yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.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();
        id_ = "";
        imageId_ = "";
        if (scannedAtBuilder_ == null) {
          scannedAt_ = null;
        } else {
          scannedAt_ = null;
          scannedAtBuilder_ = null;
        }
        status_ = 0;
        if (vulnerabilitiesBuilder_ == null) {
          vulnerabilities_ = null;
        } else {
          vulnerabilities_ = null;
          vulnerabilitiesBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult getDefaultInstanceForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult build() {
        yandex.cloud.api.containerregistry.v1.Scanner.ScanResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult buildPartial() {
        yandex.cloud.api.containerregistry.v1.Scanner.ScanResult result = new yandex.cloud.api.containerregistry.v1.Scanner.ScanResult(this);
        result.id_ = id_;
        result.imageId_ = imageId_;
        if (scannedAtBuilder_ == null) {
          result.scannedAt_ = scannedAt_;
        } else {
          result.scannedAt_ = scannedAtBuilder_.build();
        }
        result.status_ = status_;
        if (vulnerabilitiesBuilder_ == null) {
          result.vulnerabilities_ = vulnerabilities_;
        } else {
          result.vulnerabilities_ = vulnerabilitiesBuilder_.build();
        }
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.containerregistry.v1.Scanner.ScanResult) {
          return mergeFrom((yandex.cloud.api.containerregistry.v1.Scanner.ScanResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.containerregistry.v1.Scanner.ScanResult other) {
        if (other == yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.getDefaultInstance()) return this;
        if (!other.getId().isEmpty()) {
          id_ = other.id_;
          onChanged();
        }
        if (!other.getImageId().isEmpty()) {
          imageId_ = other.imageId_;
          onChanged();
        }
        if (other.hasScannedAt()) {
          mergeScannedAt(other.getScannedAt());
        }
        if (other.status_ != 0) {
          setStatusValue(other.getStatusValue());
        }
        if (other.hasVulnerabilities()) {
          mergeVulnerabilities(other.getVulnerabilities());
        }
        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 {
        yandex.cloud.api.containerregistry.v1.Scanner.ScanResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.containerregistry.v1.Scanner.ScanResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object id_ = "";
      /**
       * 
       * Output only. ID of the ScanResult.
       * 
       *
       * string id = 1;
       * @return The id.
       */
      public java.lang.String getId() {
        java.lang.Object ref = id_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          id_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Output only. ID of the ScanResult.
       * 
       *
       * string id = 1;
       * @return The bytes for id.
       */
      public com.google.protobuf.ByteString
          getIdBytes() {
        java.lang.Object ref = id_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          id_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Output only. ID of the ScanResult.
       * 
       *
       * string id = 1;
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        id_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. ID of the ScanResult.
       * 
       *
       * string id = 1;
       * @return This builder for chaining.
       */
      public Builder clearId() {
        
        id_ = getDefaultInstance().getId();
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. ID of the ScanResult.
       * 
       *
       * string id = 1;
       * @param value The bytes for id to set.
       * @return This builder for chaining.
       */
      public Builder setIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        id_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object imageId_ = "";
      /**
       * 
       * Output only. ID of the Image that the ScanResult belongs to.
       * 
       *
       * string image_id = 2;
       * @return The imageId.
       */
      public java.lang.String getImageId() {
        java.lang.Object ref = imageId_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          imageId_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Output only. ID of the Image that the ScanResult belongs to.
       * 
       *
       * string image_id = 2;
       * @return The bytes for imageId.
       */
      public com.google.protobuf.ByteString
          getImageIdBytes() {
        java.lang.Object ref = imageId_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          imageId_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Output only. ID of the Image that the ScanResult belongs to.
       * 
       *
       * string image_id = 2;
       * @param value The imageId to set.
       * @return This builder for chaining.
       */
      public Builder setImageId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        imageId_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. ID of the Image that the ScanResult belongs to.
       * 
       *
       * string image_id = 2;
       * @return This builder for chaining.
       */
      public Builder clearImageId() {
        
        imageId_ = getDefaultInstance().getImageId();
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. ID of the Image that the ScanResult belongs to.
       * 
       *
       * string image_id = 2;
       * @param value The bytes for imageId to set.
       * @return This builder for chaining.
       */
      public Builder setImageIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        imageId_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.Timestamp scannedAt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> scannedAtBuilder_;
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       * @return Whether the scannedAt field is set.
       */
      public boolean hasScannedAt() {
        return scannedAtBuilder_ != null || scannedAt_ != null;
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       * @return The scannedAt.
       */
      public com.google.protobuf.Timestamp getScannedAt() {
        if (scannedAtBuilder_ == null) {
          return scannedAt_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : scannedAt_;
        } else {
          return scannedAtBuilder_.getMessage();
        }
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public Builder setScannedAt(com.google.protobuf.Timestamp value) {
        if (scannedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scannedAt_ = value;
          onChanged();
        } else {
          scannedAtBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public Builder setScannedAt(
          com.google.protobuf.Timestamp.Builder builderForValue) {
        if (scannedAtBuilder_ == null) {
          scannedAt_ = builderForValue.build();
          onChanged();
        } else {
          scannedAtBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public Builder mergeScannedAt(com.google.protobuf.Timestamp value) {
        if (scannedAtBuilder_ == null) {
          if (scannedAt_ != null) {
            scannedAt_ =
              com.google.protobuf.Timestamp.newBuilder(scannedAt_).mergeFrom(value).buildPartial();
          } else {
            scannedAt_ = value;
          }
          onChanged();
        } else {
          scannedAtBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public Builder clearScannedAt() {
        if (scannedAtBuilder_ == null) {
          scannedAt_ = null;
          onChanged();
        } else {
          scannedAt_ = null;
          scannedAtBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public com.google.protobuf.Timestamp.Builder getScannedAtBuilder() {
        
        onChanged();
        return getScannedAtFieldBuilder().getBuilder();
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      public com.google.protobuf.TimestampOrBuilder getScannedAtOrBuilder() {
        if (scannedAtBuilder_ != null) {
          return scannedAtBuilder_.getMessageOrBuilder();
        } else {
          return scannedAt_ == null ?
              com.google.protobuf.Timestamp.getDefaultInstance() : scannedAt_;
        }
      }
      /**
       * 
       * Output only. The timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format when the scan been finished.
       * 
       *
       * .google.protobuf.Timestamp scanned_at = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> 
          getScannedAtFieldBuilder() {
        if (scannedAtBuilder_ == null) {
          scannedAtBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>(
                  getScannedAt(),
                  getParentForChildren(),
                  isClean());
          scannedAt_ = null;
        }
        return scannedAtBuilder_;
      }
      private int status_ = 0;
      /**
       * 
       * Output only. The status of the ScanResult.
       * 
       *
       * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
       * @return The enum numeric value on the wire for status.
       */
      @java.lang.Override public int getStatusValue() {
        return status_;
      }
      /**
       * 
       * Output only. The status of the ScanResult.
       * 
       *
       * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
       * @param value The enum numeric value on the wire for status to set.
       * @return This builder for chaining.
       */
      public Builder setStatusValue(int value) {
        
        status_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. The status of the ScanResult.
       * 
       *
       * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
       * @return The status.
       */
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status getStatus() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status result = yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.valueOf(status_);
        return result == null ? yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status.UNRECOGNIZED : result;
      }
      /**
       * 
       * Output only. The status of the ScanResult.
       * 
       *
       * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
       * @param value The status to set.
       * @return This builder for chaining.
       */
      public Builder setStatus(yandex.cloud.api.containerregistry.v1.Scanner.ScanResult.Status value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        status_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. The status of the ScanResult.
       * 
       *
       * .yandex.cloud.containerregistry.v1.ScanResult.Status status = 4;
       * @return This builder for chaining.
       */
      public Builder clearStatus() {
        
        status_ = 0;
        onChanged();
        return this;
      }
      private yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats vulnerabilities_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder> vulnerabilitiesBuilder_;
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       * @return Whether the vulnerabilities field is set.
       */
      public boolean hasVulnerabilities() {
        return vulnerabilitiesBuilder_ != null || vulnerabilities_ != null;
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       * @return The vulnerabilities.
       */
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getVulnerabilities() {
        if (vulnerabilitiesBuilder_ == null) {
          return vulnerabilities_ == null ? yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.getDefaultInstance() : vulnerabilities_;
        } else {
          return vulnerabilitiesBuilder_.getMessage();
        }
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public Builder setVulnerabilities(yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats value) {
        if (vulnerabilitiesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vulnerabilities_ = value;
          onChanged();
        } else {
          vulnerabilitiesBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public Builder setVulnerabilities(
          yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder builderForValue) {
        if (vulnerabilitiesBuilder_ == null) {
          vulnerabilities_ = builderForValue.build();
          onChanged();
        } else {
          vulnerabilitiesBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public Builder mergeVulnerabilities(yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats value) {
        if (vulnerabilitiesBuilder_ == null) {
          if (vulnerabilities_ != null) {
            vulnerabilities_ =
              yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.newBuilder(vulnerabilities_).mergeFrom(value).buildPartial();
          } else {
            vulnerabilities_ = value;
          }
          onChanged();
        } else {
          vulnerabilitiesBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public Builder clearVulnerabilities() {
        if (vulnerabilitiesBuilder_ == null) {
          vulnerabilities_ = null;
          onChanged();
        } else {
          vulnerabilities_ = null;
          vulnerabilitiesBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder getVulnerabilitiesBuilder() {
        
        onChanged();
        return getVulnerabilitiesFieldBuilder().getBuilder();
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder getVulnerabilitiesOrBuilder() {
        if (vulnerabilitiesBuilder_ != null) {
          return vulnerabilitiesBuilder_.getMessageOrBuilder();
        } else {
          return vulnerabilities_ == null ?
              yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.getDefaultInstance() : vulnerabilities_;
        }
      }
      /**
       * 
       * Output only. Summary information about vulnerabilities found.
       * 
       *
       * .yandex.cloud.containerregistry.v1.VulnerabilityStats vulnerabilities = 5;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder> 
          getVulnerabilitiesFieldBuilder() {
        if (vulnerabilitiesBuilder_ == null) {
          vulnerabilitiesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder>(
                  getVulnerabilities(),
                  getParentForChildren(),
                  isClean());
          vulnerabilities_ = null;
        }
        return vulnerabilitiesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.containerregistry.v1.ScanResult)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.containerregistry.v1.ScanResult)
    private static final yandex.cloud.api.containerregistry.v1.Scanner.ScanResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.containerregistry.v1.Scanner.ScanResult();
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.ScanResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public ScanResult parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ScanResult(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.ScanResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface VulnerabilityStatsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.containerregistry.v1.VulnerabilityStats)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Count of CRITICAL vulnerabilities.
     * 
     *
     * int64 critical = 1;
     * @return The critical.
     */
    long getCritical();
    /**
     * 
     * Count of HIGH vulnerabilities.
     * 
     *
     * int64 high = 2;
     * @return The high.
     */
    long getHigh();
    /**
     * 
     * Count of MEDIUM vulnerabilities.
     * 
     *
     * int64 medium = 3;
     * @return The medium.
     */
    long getMedium();
    /**
     * 
     * Count of LOW vulnerabilities.
     * 
     *
     * int64 low = 4;
     * @return The low.
     */
    long getLow();
    /**
     * 
     * Count of NEGLIGIBLE vulnerabilities.
     * 
     *
     * int64 negligible = 5;
     * @return The negligible.
     */
    long getNegligible();
    /**
     * 
     * Count of other vulnerabilities.
     * 
     *
     * int64 undefined = 6;
     * @return The undefined.
     */
    long getUndefined();
  }
  /**
   * 
   * A VulnerabilityStats resource.
   * 
   *
   * Protobuf type {@code yandex.cloud.containerregistry.v1.VulnerabilityStats}
   */
  public static final class VulnerabilityStats extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.containerregistry.v1.VulnerabilityStats)
      VulnerabilityStatsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VulnerabilityStats.newBuilder() to construct.
    private VulnerabilityStats(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private VulnerabilityStats() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new VulnerabilityStats();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VulnerabilityStats(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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: {
              critical_ = input.readInt64();
              break;
            }
            case 16: {
              high_ = input.readInt64();
              break;
            }
            case 24: {
              medium_ = input.readInt64();
              break;
            }
            case 32: {
              low_ = input.readInt64();
              break;
            }
            case 40: {
              negligible_ = input.readInt64();
              break;
            }
            case 48: {
              undefined_ = input.readInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  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 yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.class, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder.class);
    }
    public static final int CRITICAL_FIELD_NUMBER = 1;
    private long critical_;
    /**
     * 
     * Count of CRITICAL vulnerabilities.
     * 
     *
     * int64 critical = 1;
     * @return The critical.
     */
    @java.lang.Override
    public long getCritical() {
      return critical_;
    }
    public static final int HIGH_FIELD_NUMBER = 2;
    private long high_;
    /**
     * 
     * Count of HIGH vulnerabilities.
     * 
     *
     * int64 high = 2;
     * @return The high.
     */
    @java.lang.Override
    public long getHigh() {
      return high_;
    }
    public static final int MEDIUM_FIELD_NUMBER = 3;
    private long medium_;
    /**
     * 
     * Count of MEDIUM vulnerabilities.
     * 
     *
     * int64 medium = 3;
     * @return The medium.
     */
    @java.lang.Override
    public long getMedium() {
      return medium_;
    }
    public static final int LOW_FIELD_NUMBER = 4;
    private long low_;
    /**
     * 
     * Count of LOW vulnerabilities.
     * 
     *
     * int64 low = 4;
     * @return The low.
     */
    @java.lang.Override
    public long getLow() {
      return low_;
    }
    public static final int NEGLIGIBLE_FIELD_NUMBER = 5;
    private long negligible_;
    /**
     * 
     * Count of NEGLIGIBLE vulnerabilities.
     * 
     *
     * int64 negligible = 5;
     * @return The negligible.
     */
    @java.lang.Override
    public long getNegligible() {
      return negligible_;
    }
    public static final int UNDEFINED_FIELD_NUMBER = 6;
    private long undefined_;
    /**
     * 
     * Count of other vulnerabilities.
     * 
     *
     * int64 undefined = 6;
     * @return The undefined.
     */
    @java.lang.Override
    public long getUndefined() {
      return undefined_;
    }
    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 (critical_ != 0L) {
        output.writeInt64(1, critical_);
      }
      if (high_ != 0L) {
        output.writeInt64(2, high_);
      }
      if (medium_ != 0L) {
        output.writeInt64(3, medium_);
      }
      if (low_ != 0L) {
        output.writeInt64(4, low_);
      }
      if (negligible_ != 0L) {
        output.writeInt64(5, negligible_);
      }
      if (undefined_ != 0L) {
        output.writeInt64(6, undefined_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (critical_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, critical_);
      }
      if (high_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, high_);
      }
      if (medium_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, medium_);
      }
      if (low_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(4, low_);
      }
      if (negligible_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(5, negligible_);
      }
      if (undefined_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(6, undefined_);
      }
      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 yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats)) {
        return super.equals(obj);
      }
      yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats other = (yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats) obj;
      if (getCritical()
          != other.getCritical()) return false;
      if (getHigh()
          != other.getHigh()) return false;
      if (getMedium()
          != other.getMedium()) return false;
      if (getLow()
          != other.getLow()) return false;
      if (getNegligible()
          != other.getNegligible()) return false;
      if (getUndefined()
          != other.getUndefined()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + CRITICAL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getCritical());
      hash = (37 * hash) + HIGH_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getHigh());
      hash = (37 * hash) + MEDIUM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getMedium());
      hash = (37 * hash) + LOW_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLow());
      hash = (37 * hash) + NEGLIGIBLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getNegligible());
      hash = (37 * hash) + UNDEFINED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getUndefined());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats 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 yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats 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 yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats 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(yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats 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;
    }
    /**
     * 
     * A VulnerabilityStats resource.
     * 
     *
     * Protobuf type {@code yandex.cloud.containerregistry.v1.VulnerabilityStats}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.containerregistry.v1.VulnerabilityStats)
        yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStatsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.class, yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.Builder.class);
      }
      // Construct using yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.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();
        critical_ = 0L;
        high_ = 0L;
        medium_ = 0L;
        low_ = 0L;
        negligible_ = 0L;
        undefined_ = 0L;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getDefaultInstanceForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats build() {
        yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats buildPartial() {
        yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats result = new yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats(this);
        result.critical_ = critical_;
        result.high_ = high_;
        result.medium_ = medium_;
        result.low_ = low_;
        result.negligible_ = negligible_;
        result.undefined_ = undefined_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats) {
          return mergeFrom((yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats other) {
        if (other == yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats.getDefaultInstance()) return this;
        if (other.getCritical() != 0L) {
          setCritical(other.getCritical());
        }
        if (other.getHigh() != 0L) {
          setHigh(other.getHigh());
        }
        if (other.getMedium() != 0L) {
          setMedium(other.getMedium());
        }
        if (other.getLow() != 0L) {
          setLow(other.getLow());
        }
        if (other.getNegligible() != 0L) {
          setNegligible(other.getNegligible());
        }
        if (other.getUndefined() != 0L) {
          setUndefined(other.getUndefined());
        }
        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 {
        yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private long critical_ ;
      /**
       * 
       * Count of CRITICAL vulnerabilities.
       * 
       *
       * int64 critical = 1;
       * @return The critical.
       */
      @java.lang.Override
      public long getCritical() {
        return critical_;
      }
      /**
       * 
       * Count of CRITICAL vulnerabilities.
       * 
       *
       * int64 critical = 1;
       * @param value The critical to set.
       * @return This builder for chaining.
       */
      public Builder setCritical(long value) {
        
        critical_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of CRITICAL vulnerabilities.
       * 
       *
       * int64 critical = 1;
       * @return This builder for chaining.
       */
      public Builder clearCritical() {
        
        critical_ = 0L;
        onChanged();
        return this;
      }
      private long high_ ;
      /**
       * 
       * Count of HIGH vulnerabilities.
       * 
       *
       * int64 high = 2;
       * @return The high.
       */
      @java.lang.Override
      public long getHigh() {
        return high_;
      }
      /**
       * 
       * Count of HIGH vulnerabilities.
       * 
       *
       * int64 high = 2;
       * @param value The high to set.
       * @return This builder for chaining.
       */
      public Builder setHigh(long value) {
        
        high_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of HIGH vulnerabilities.
       * 
       *
       * int64 high = 2;
       * @return This builder for chaining.
       */
      public Builder clearHigh() {
        
        high_ = 0L;
        onChanged();
        return this;
      }
      private long medium_ ;
      /**
       * 
       * Count of MEDIUM vulnerabilities.
       * 
       *
       * int64 medium = 3;
       * @return The medium.
       */
      @java.lang.Override
      public long getMedium() {
        return medium_;
      }
      /**
       * 
       * Count of MEDIUM vulnerabilities.
       * 
       *
       * int64 medium = 3;
       * @param value The medium to set.
       * @return This builder for chaining.
       */
      public Builder setMedium(long value) {
        
        medium_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of MEDIUM vulnerabilities.
       * 
       *
       * int64 medium = 3;
       * @return This builder for chaining.
       */
      public Builder clearMedium() {
        
        medium_ = 0L;
        onChanged();
        return this;
      }
      private long low_ ;
      /**
       * 
       * Count of LOW vulnerabilities.
       * 
       *
       * int64 low = 4;
       * @return The low.
       */
      @java.lang.Override
      public long getLow() {
        return low_;
      }
      /**
       * 
       * Count of LOW vulnerabilities.
       * 
       *
       * int64 low = 4;
       * @param value The low to set.
       * @return This builder for chaining.
       */
      public Builder setLow(long value) {
        
        low_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of LOW vulnerabilities.
       * 
       *
       * int64 low = 4;
       * @return This builder for chaining.
       */
      public Builder clearLow() {
        
        low_ = 0L;
        onChanged();
        return this;
      }
      private long negligible_ ;
      /**
       * 
       * Count of NEGLIGIBLE vulnerabilities.
       * 
       *
       * int64 negligible = 5;
       * @return The negligible.
       */
      @java.lang.Override
      public long getNegligible() {
        return negligible_;
      }
      /**
       * 
       * Count of NEGLIGIBLE vulnerabilities.
       * 
       *
       * int64 negligible = 5;
       * @param value The negligible to set.
       * @return This builder for chaining.
       */
      public Builder setNegligible(long value) {
        
        negligible_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of NEGLIGIBLE vulnerabilities.
       * 
       *
       * int64 negligible = 5;
       * @return This builder for chaining.
       */
      public Builder clearNegligible() {
        
        negligible_ = 0L;
        onChanged();
        return this;
      }
      private long undefined_ ;
      /**
       * 
       * Count of other vulnerabilities.
       * 
       *
       * int64 undefined = 6;
       * @return The undefined.
       */
      @java.lang.Override
      public long getUndefined() {
        return undefined_;
      }
      /**
       * 
       * Count of other vulnerabilities.
       * 
       *
       * int64 undefined = 6;
       * @param value The undefined to set.
       * @return This builder for chaining.
       */
      public Builder setUndefined(long value) {
        
        undefined_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Count of other vulnerabilities.
       * 
       *
       * int64 undefined = 6;
       * @return This builder for chaining.
       */
      public Builder clearUndefined() {
        
        undefined_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.containerregistry.v1.VulnerabilityStats)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.containerregistry.v1.VulnerabilityStats)
    private static final yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats();
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public VulnerabilityStats parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new VulnerabilityStats(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityStats getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface VulnerabilityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.containerregistry.v1.Vulnerability)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Output only. Severity of the Vulnerability.
     * 
     *
     * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
     * @return The enum numeric value on the wire for severity.
     */
    int getSeverityValue();
    /**
     * 
     * Output only. Severity of the Vulnerability.
     * 
     *
     * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
     * @return The severity.
     */
    yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity getSeverity();
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     * @return Whether the package field is set.
     */
    boolean hasPackage();
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     * @return The package.
     */
    yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getPackage();
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     */
    yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder getPackageOrBuilder();
    public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.VulnerabilityCase getVulnerabilityCase();
  }
  /**
   * 
   * A Vulnerability resource.
   * 
   *
   * Protobuf type {@code yandex.cloud.containerregistry.v1.Vulnerability}
   */
  public static final class Vulnerability extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.containerregistry.v1.Vulnerability)
      VulnerabilityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Vulnerability.newBuilder() to construct.
    private Vulnerability(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private Vulnerability() {
      severity_ = 0;
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Vulnerability();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Vulnerability(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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();
              severity_ = rawValue;
              break;
            }
            case 18: {
              yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder subBuilder = null;
              if (vulnerabilityCase_ == 2) {
                subBuilder = ((yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_).toBuilder();
              }
              vulnerability_ =
                  input.readMessage(yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_);
                vulnerability_ = subBuilder.buildPartial();
              }
              vulnerabilityCase_ = 2;
              break;
            }
            default: {
              if (!parseUnknownField(
                  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 yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_Vulnerability_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.class, yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.containerregistry.v1.Vulnerability.Severity}
     */
    public enum Severity
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * SEVERITY_UNSPECIFIED = 0;
       */
      SEVERITY_UNSPECIFIED(0),
      /**
       * 
       * Critical severity is a world-burning problem, exploitable for nearly all users.
       * Includes remote root privilege escalations, or massive data loss.
       * 
       *
       * CRITICAL = 1;
       */
      CRITICAL(1),
      /**
       * 
       * High severity is a real problem, exploitable for many users in a default installation.
       * Includes serious remote denial of services, local root privilege escalations, or data loss.
       * 
       *
       * HIGH = 2;
       */
      HIGH(2),
      /**
       * 
       * Medium severity is a real security problem, and is exploitable for many users.
       * Includes network daemon denial of service attacks, cross-site scripting, and gaining user privileges.
       * Updates should be made soon for this priority of issue.
       * 
       *
       * MEDIUM = 3;
       */
      MEDIUM(3),
      /**
       * 
       * Low severity is a security problem, but is hard to exploit due to environment, requires a user-assisted attack,
       * a small install base, or does very little damage. These tend to be included in security updates only when
       * higher priority issues require an update, or if many low priority issues have built up.
       * 
       *
       * LOW = 4;
       */
      LOW(4),
      /**
       * 
       * Negligible severity is technically a security problem, but is only theoretical in nature, requires a very special situation,
       * has almost no install base, or does no real damage. These tend not to get backport from upstream,
       * and will likely not be included in security updates unless there is an easy fix and some other issue causes an update.
       * 
       *
       * NEGLIGIBLE = 5;
       */
      NEGLIGIBLE(5),
      /**
       * 
       * Unknown severity is either a security problem that has not been assigned to a priority yet or
       * a priority that our system did not recognize.
       * 
       *
       * UNDEFINED = 6;
       */
      UNDEFINED(6),
      UNRECOGNIZED(-1),
      ;
      /**
       * SEVERITY_UNSPECIFIED = 0;
       */
      public static final int SEVERITY_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * Critical severity is a world-burning problem, exploitable for nearly all users.
       * Includes remote root privilege escalations, or massive data loss.
       * 
       *
       * CRITICAL = 1;
       */
      public static final int CRITICAL_VALUE = 1;
      /**
       * 
       * High severity is a real problem, exploitable for many users in a default installation.
       * Includes serious remote denial of services, local root privilege escalations, or data loss.
       * 
       *
       * HIGH = 2;
       */
      public static final int HIGH_VALUE = 2;
      /**
       * 
       * Medium severity is a real security problem, and is exploitable for many users.
       * Includes network daemon denial of service attacks, cross-site scripting, and gaining user privileges.
       * Updates should be made soon for this priority of issue.
       * 
       *
       * MEDIUM = 3;
       */
      public static final int MEDIUM_VALUE = 3;
      /**
       * 
       * Low severity is a security problem, but is hard to exploit due to environment, requires a user-assisted attack,
       * a small install base, or does very little damage. These tend to be included in security updates only when
       * higher priority issues require an update, or if many low priority issues have built up.
       * 
       *
       * LOW = 4;
       */
      public static final int LOW_VALUE = 4;
      /**
       * 
       * Negligible severity is technically a security problem, but is only theoretical in nature, requires a very special situation,
       * has almost no install base, or does no real damage. These tend not to get backport from upstream,
       * and will likely not be included in security updates unless there is an easy fix and some other issue causes an update.
       * 
       *
       * NEGLIGIBLE = 5;
       */
      public static final int NEGLIGIBLE_VALUE = 5;
      /**
       * 
       * Unknown severity is either a security problem that has not been assigned to a priority yet or
       * a priority that our system did not recognize.
       * 
       *
       * UNDEFINED = 6;
       */
      public static final int UNDEFINED_VALUE = 6;
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Severity valueOf(int value) {
        return forNumber(value);
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Severity forNumber(int value) {
        switch (value) {
          case 0: return SEVERITY_UNSPECIFIED;
          case 1: return CRITICAL;
          case 2: return HIGH;
          case 3: return MEDIUM;
          case 4: return LOW;
          case 5: return NEGLIGIBLE;
          case 6: return UNDEFINED;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Severity> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public Severity findValueByNumber(int number) {
                return Severity.forNumber(number);
              }
            };
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        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 yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.getDescriptor().getEnumTypes().get(0);
      }
      private static final Severity[] VALUES = values();
      public static Severity 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 Severity(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.containerregistry.v1.Vulnerability.Severity)
    }
    private int vulnerabilityCase_ = 0;
    private java.lang.Object vulnerability_;
    public enum VulnerabilityCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      PACKAGE(2),
      VULNERABILITY_NOT_SET(0);
      private final int value;
      private VulnerabilityCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static VulnerabilityCase valueOf(int value) {
        return forNumber(value);
      }
      public static VulnerabilityCase forNumber(int value) {
        switch (value) {
          case 2: return PACKAGE;
          case 0: return VULNERABILITY_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };
    public VulnerabilityCase
    getVulnerabilityCase() {
      return VulnerabilityCase.forNumber(
          vulnerabilityCase_);
    }
    public static final int SEVERITY_FIELD_NUMBER = 1;
    private int severity_;
    /**
     * 
     * Output only. Severity of the Vulnerability.
     * 
     *
     * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
     * @return The enum numeric value on the wire for severity.
     */
    @java.lang.Override public int getSeverityValue() {
      return severity_;
    }
    /**
     * 
     * Output only. Severity of the Vulnerability.
     * 
     *
     * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
     * @return The severity.
     */
    @java.lang.Override public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity getSeverity() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity result = yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.valueOf(severity_);
      return result == null ? yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.UNRECOGNIZED : result;
    }
    public static final int PACKAGE_FIELD_NUMBER = 2;
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     * @return Whether the package field is set.
     */
    @java.lang.Override
    public boolean hasPackage() {
      return vulnerabilityCase_ == 2;
    }
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     * @return The package.
     */
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getPackage() {
      if (vulnerabilityCase_ == 2) {
         return (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_;
      }
      return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
    }
    /**
     * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
     */
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder getPackageOrBuilder() {
      if (vulnerabilityCase_ == 2) {
         return (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_;
      }
      return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
    }
    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 (severity_ != yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.SEVERITY_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, severity_);
      }
      if (vulnerabilityCase_ == 2) {
        output.writeMessage(2, (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (severity_ != yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.SEVERITY_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, severity_);
      }
      if (vulnerabilityCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_);
      }
      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 yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability)) {
        return super.equals(obj);
      }
      yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability other = (yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability) obj;
      if (severity_ != other.severity_) return false;
      if (!getVulnerabilityCase().equals(other.getVulnerabilityCase())) return false;
      switch (vulnerabilityCase_) {
        case 2:
          if (!getPackage()
              .equals(other.getPackage())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SEVERITY_FIELD_NUMBER;
      hash = (53 * hash) + severity_;
      switch (vulnerabilityCase_) {
        case 2:
          hash = (37 * hash) + PACKAGE_FIELD_NUMBER;
          hash = (53 * hash) + getPackage().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability 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 yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability 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 yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability 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(yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability 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;
    }
    /**
     * 
     * A Vulnerability resource.
     * 
     *
     * Protobuf type {@code yandex.cloud.containerregistry.v1.Vulnerability}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.containerregistry.v1.Vulnerability)
        yandex.cloud.api.containerregistry.v1.Scanner.VulnerabilityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_Vulnerability_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.class, yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Builder.class);
      }
      // Construct using yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.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();
        severity_ = 0;
        vulnerabilityCase_ = 0;
        vulnerability_ = null;
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability getDefaultInstanceForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability build() {
        yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability buildPartial() {
        yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability result = new yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability(this);
        result.severity_ = severity_;
        if (vulnerabilityCase_ == 2) {
          if (packageBuilder_ == null) {
            result.vulnerability_ = vulnerability_;
          } else {
            result.vulnerability_ = packageBuilder_.build();
          }
        }
        result.vulnerabilityCase_ = vulnerabilityCase_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability) {
          return mergeFrom((yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability other) {
        if (other == yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.getDefaultInstance()) return this;
        if (other.severity_ != 0) {
          setSeverityValue(other.getSeverityValue());
        }
        switch (other.getVulnerabilityCase()) {
          case PACKAGE: {
            mergePackage(other.getPackage());
            break;
          }
          case VULNERABILITY_NOT_SET: {
            break;
          }
        }
        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 {
        yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int vulnerabilityCase_ = 0;
      private java.lang.Object vulnerability_;
      public VulnerabilityCase
          getVulnerabilityCase() {
        return VulnerabilityCase.forNumber(
            vulnerabilityCase_);
      }
      public Builder clearVulnerability() {
        vulnerabilityCase_ = 0;
        vulnerability_ = null;
        onChanged();
        return this;
      }
      private int severity_ = 0;
      /**
       * 
       * Output only. Severity of the Vulnerability.
       * 
       *
       * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
       * @return The enum numeric value on the wire for severity.
       */
      @java.lang.Override public int getSeverityValue() {
        return severity_;
      }
      /**
       * 
       * Output only. Severity of the Vulnerability.
       * 
       *
       * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
       * @param value The enum numeric value on the wire for severity to set.
       * @return This builder for chaining.
       */
      public Builder setSeverityValue(int value) {
        
        severity_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. Severity of the Vulnerability.
       * 
       *
       * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
       * @return The severity.
       */
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity getSeverity() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity result = yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.valueOf(severity_);
        return result == null ? yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity.UNRECOGNIZED : result;
      }
      /**
       * 
       * Output only. Severity of the Vulnerability.
       * 
       *
       * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
       * @param value The severity to set.
       * @return This builder for chaining.
       */
      public Builder setSeverity(yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability.Severity value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        severity_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Output only. Severity of the Vulnerability.
       * 
       *
       * .yandex.cloud.containerregistry.v1.Vulnerability.Severity severity = 1;
       * @return This builder for chaining.
       */
      public Builder clearSeverity() {
        
        severity_ = 0;
        onChanged();
        return this;
      }
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder> packageBuilder_;
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       * @return Whether the package field is set.
       */
      @java.lang.Override
      public boolean hasPackage() {
        return vulnerabilityCase_ == 2;
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       * @return The package.
       */
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getPackage() {
        if (packageBuilder_ == null) {
          if (vulnerabilityCase_ == 2) {
            return (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_;
          }
          return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
        } else {
          if (vulnerabilityCase_ == 2) {
            return packageBuilder_.getMessage();
          }
          return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
        }
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      public Builder setPackage(yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability value) {
        if (packageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vulnerability_ = value;
          onChanged();
        } else {
          packageBuilder_.setMessage(value);
        }
        vulnerabilityCase_ = 2;
        return this;
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      public Builder setPackage(
          yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder builderForValue) {
        if (packageBuilder_ == null) {
          vulnerability_ = builderForValue.build();
          onChanged();
        } else {
          packageBuilder_.setMessage(builderForValue.build());
        }
        vulnerabilityCase_ = 2;
        return this;
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      public Builder mergePackage(yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability value) {
        if (packageBuilder_ == null) {
          if (vulnerabilityCase_ == 2 &&
              vulnerability_ != yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance()) {
            vulnerability_ = yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.newBuilder((yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_)
                .mergeFrom(value).buildPartial();
          } else {
            vulnerability_ = value;
          }
          onChanged();
        } else {
          if (vulnerabilityCase_ == 2) {
            packageBuilder_.mergeFrom(value);
          }
          packageBuilder_.setMessage(value);
        }
        vulnerabilityCase_ = 2;
        return this;
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      public Builder clearPackage() {
        if (packageBuilder_ == null) {
          if (vulnerabilityCase_ == 2) {
            vulnerabilityCase_ = 0;
            vulnerability_ = null;
            onChanged();
          }
        } else {
          if (vulnerabilityCase_ == 2) {
            vulnerabilityCase_ = 0;
            vulnerability_ = null;
          }
          packageBuilder_.clear();
        }
        return this;
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder getPackageBuilder() {
        return getPackageFieldBuilder().getBuilder();
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder getPackageOrBuilder() {
        if ((vulnerabilityCase_ == 2) && (packageBuilder_ != null)) {
          return packageBuilder_.getMessageOrBuilder();
        } else {
          if (vulnerabilityCase_ == 2) {
            return (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_;
          }
          return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
        }
      }
      /**
       * .yandex.cloud.containerregistry.v1.PackageVulnerability package = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder> 
          getPackageFieldBuilder() {
        if (packageBuilder_ == null) {
          if (!(vulnerabilityCase_ == 2)) {
            vulnerability_ = yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
          }
          packageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder>(
                  (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) vulnerability_,
                  getParentForChildren(),
                  isClean());
          vulnerability_ = null;
        }
        vulnerabilityCase_ = 2;
        onChanged();;
        return packageBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.containerregistry.v1.Vulnerability)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.containerregistry.v1.Vulnerability)
    private static final yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability();
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public Vulnerability parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Vulnerability(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.Vulnerability getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface PackageVulnerabilityOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.containerregistry.v1.PackageVulnerability)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Name of vulnerability in CVE database.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    java.lang.String getName();
    /**
     * 
     * Name of vulnerability in CVE database.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
    /**
     * 
     * URL to the page with description of vulnerability.
     * 
     *
     * string link = 2;
     * @return The link.
     */
    java.lang.String getLink();
    /**
     * 
     * URL to the page with description of vulnerability.
     * 
     *
     * string link = 2;
     * @return The bytes for link.
     */
    com.google.protobuf.ByteString
        getLinkBytes();
    /**
     * 
     * The package name where vulnerability has been found.
     * 
     *
     * string package = 3;
     * @return The package.
     */
    java.lang.String getPackage();
    /**
     * 
     * The package name where vulnerability has been found.
     * 
     *
     * string package = 3;
     * @return The bytes for package.
     */
    com.google.protobuf.ByteString
        getPackageBytes();
    /**
     * 
     * The package manager name. Ex.: yum, rpm, dpkg.
     * 
     *
     * string source = 4;
     * @return The source.
     */
    java.lang.String getSource();
    /**
     * 
     * The package manager name. Ex.: yum, rpm, dpkg.
     * 
     *
     * string source = 4;
     * @return The bytes for source.
     */
    com.google.protobuf.ByteString
        getSourceBytes();
    /**
     * 
     * The version of the package where vulnerability has been found.
     * 
     *
     * string version = 5;
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * 
     * The version of the package where vulnerability has been found.
     * 
     *
     * string version = 5;
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();
    /**
     * 
     * The version of the package where vulnerability has been fixed.
     * 
     *
     * string fixed_by = 6;
     * @return The fixedBy.
     */
    java.lang.String getFixedBy();
    /**
     * 
     * The version of the package where vulnerability has been fixed.
     * 
     *
     * string fixed_by = 6;
     * @return The bytes for fixedBy.
     */
    com.google.protobuf.ByteString
        getFixedByBytes();
  }
  /**
   * 
   * A PackageVulnerability resource.
   * 
   *
   * Protobuf type {@code yandex.cloud.containerregistry.v1.PackageVulnerability}
   */
  public static final class PackageVulnerability extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.containerregistry.v1.PackageVulnerability)
      PackageVulnerabilityOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PackageVulnerability.newBuilder() to construct.
    private PackageVulnerability(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private PackageVulnerability() {
      name_ = "";
      link_ = "";
      package_ = "";
      source_ = "";
      version_ = "";
      fixedBy_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PackageVulnerability();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PackageVulnerability(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      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();
              name_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              link_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              package_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              source_ = s;
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();
              version_ = s;
              break;
            }
            case 50: {
              java.lang.String s = input.readStringRequireUtf8();
              fixedBy_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  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 yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.class, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder.class);
    }
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     * 
     * Name of vulnerability in CVE database.
     * 
     *
     * string name = 1;
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      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();
        name_ = s;
        return s;
      }
    }
    /**
     * 
     * Name of vulnerability in CVE database.
     * 
     *
     * string name = 1;
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int LINK_FIELD_NUMBER = 2;
    private volatile java.lang.Object link_;
    /**
     * 
     * URL to the page with description of vulnerability.
     * 
     *
     * string link = 2;
     * @return The link.
     */
    @java.lang.Override
    public java.lang.String getLink() {
      java.lang.Object ref = link_;
      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();
        link_ = s;
        return s;
      }
    }
    /**
     * 
     * URL to the page with description of vulnerability.
     * 
     *
     * string link = 2;
     * @return The bytes for link.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getLinkBytes() {
      java.lang.Object ref = link_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        link_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int PACKAGE_FIELD_NUMBER = 3;
    private volatile java.lang.Object package_;
    /**
     * 
     * The package name where vulnerability has been found.
     * 
     *
     * string package = 3;
     * @return The package.
     */
    @java.lang.Override
    public java.lang.String getPackage() {
      java.lang.Object ref = package_;
      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();
        package_ = s;
        return s;
      }
    }
    /**
     * 
     * The package name where vulnerability has been found.
     * 
     *
     * string package = 3;
     * @return The bytes for package.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPackageBytes() {
      java.lang.Object ref = package_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        package_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int SOURCE_FIELD_NUMBER = 4;
    private volatile java.lang.Object source_;
    /**
     * 
     * The package manager name. Ex.: yum, rpm, dpkg.
     * 
     *
     * string source = 4;
     * @return The source.
     */
    @java.lang.Override
    public java.lang.String getSource() {
      java.lang.Object ref = source_;
      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();
        source_ = s;
        return s;
      }
    }
    /**
     * 
     * The package manager name. Ex.: yum, rpm, dpkg.
     * 
     *
     * string source = 4;
     * @return The bytes for source.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSourceBytes() {
      java.lang.Object ref = source_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        source_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int VERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object version_;
    /**
     * 
     * The version of the package where vulnerability has been found.
     * 
     *
     * string version = 5;
     * @return The version.
     */
    @java.lang.Override
    public java.lang.String getVersion() {
      java.lang.Object ref = version_;
      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();
        version_ = s;
        return s;
      }
    }
    /**
     * 
     * The version of the package where vulnerability has been found.
     * 
     *
     * string version = 5;
     * @return The bytes for version.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getVersionBytes() {
      java.lang.Object ref = version_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        version_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int FIXED_BY_FIELD_NUMBER = 6;
    private volatile java.lang.Object fixedBy_;
    /**
     * 
     * The version of the package where vulnerability has been fixed.
     * 
     *
     * string fixed_by = 6;
     * @return The fixedBy.
     */
    @java.lang.Override
    public java.lang.String getFixedBy() {
      java.lang.Object ref = fixedBy_;
      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();
        fixedBy_ = s;
        return s;
      }
    }
    /**
     * 
     * The version of the package where vulnerability has been fixed.
     * 
     *
     * string fixed_by = 6;
     * @return The bytes for fixedBy.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFixedByBytes() {
      java.lang.Object ref = fixedBy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        fixedBy_ = 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 (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(link_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, link_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(package_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, package_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(source_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, source_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, version_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fixedBy_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, fixedBy_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(link_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, link_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(package_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, package_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(source_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, source_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(version_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, version_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fixedBy_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, fixedBy_);
      }
      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 yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability)) {
        return super.equals(obj);
      }
      yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability other = (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) obj;
      if (!getName()
          .equals(other.getName())) return false;
      if (!getLink()
          .equals(other.getLink())) return false;
      if (!getPackage()
          .equals(other.getPackage())) return false;
      if (!getSource()
          .equals(other.getSource())) return false;
      if (!getVersion()
          .equals(other.getVersion())) return false;
      if (!getFixedBy()
          .equals(other.getFixedBy())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + LINK_FIELD_NUMBER;
      hash = (53 * hash) + getLink().hashCode();
      hash = (37 * hash) + PACKAGE_FIELD_NUMBER;
      hash = (53 * hash) + getPackage().hashCode();
      hash = (37 * hash) + SOURCE_FIELD_NUMBER;
      hash = (53 * hash) + getSource().hashCode();
      hash = (37 * hash) + VERSION_FIELD_NUMBER;
      hash = (53 * hash) + getVersion().hashCode();
      hash = (37 * hash) + FIXED_BY_FIELD_NUMBER;
      hash = (53 * hash) + getFixedBy().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability 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 yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability 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 yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability 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(yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability 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;
    }
    /**
     * 
     * A PackageVulnerability resource.
     * 
     *
     * Protobuf type {@code yandex.cloud.containerregistry.v1.PackageVulnerability}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.containerregistry.v1.PackageVulnerability)
        yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerabilityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.class, yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.Builder.class);
      }
      // Construct using yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.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();
        name_ = "";
        link_ = "";
        package_ = "";
        source_ = "";
        version_ = "";
        fixedBy_ = "";
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getDefaultInstanceForType() {
        return yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability build() {
        yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability buildPartial() {
        yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability result = new yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability(this);
        result.name_ = name_;
        result.link_ = link_;
        result.package_ = package_;
        result.source_ = source_;
        result.version_ = version_;
        result.fixedBy_ = fixedBy_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) {
          return mergeFrom((yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability other) {
        if (other == yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability.getDefaultInstance()) return this;
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          onChanged();
        }
        if (!other.getLink().isEmpty()) {
          link_ = other.link_;
          onChanged();
        }
        if (!other.getPackage().isEmpty()) {
          package_ = other.package_;
          onChanged();
        }
        if (!other.getSource().isEmpty()) {
          source_ = other.source_;
          onChanged();
        }
        if (!other.getVersion().isEmpty()) {
          version_ = other.version_;
          onChanged();
        }
        if (!other.getFixedBy().isEmpty()) {
          fixedBy_ = other.fixedBy_;
          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 {
        yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object name_ = "";
      /**
       * 
       * Name of vulnerability in CVE database.
       * 
       *
       * string name = 1;
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Name of vulnerability in CVE database.
       * 
       *
       * string name = 1;
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Name of vulnerability in CVE database.
       * 
       *
       * string name = 1;
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        name_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Name of vulnerability in CVE database.
       * 
       *
       * string name = 1;
       * @return This builder for chaining.
       */
      public Builder clearName() {
        
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       * 
       * Name of vulnerability in CVE database.
       * 
       *
       * string name = 1;
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        name_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object link_ = "";
      /**
       * 
       * URL to the page with description of vulnerability.
       * 
       *
       * string link = 2;
       * @return The link.
       */
      public java.lang.String getLink() {
        java.lang.Object ref = link_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          link_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * URL to the page with description of vulnerability.
       * 
       *
       * string link = 2;
       * @return The bytes for link.
       */
      public com.google.protobuf.ByteString
          getLinkBytes() {
        java.lang.Object ref = link_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          link_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * URL to the page with description of vulnerability.
       * 
       *
       * string link = 2;
       * @param value The link to set.
       * @return This builder for chaining.
       */
      public Builder setLink(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        link_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * URL to the page with description of vulnerability.
       * 
       *
       * string link = 2;
       * @return This builder for chaining.
       */
      public Builder clearLink() {
        
        link_ = getDefaultInstance().getLink();
        onChanged();
        return this;
      }
      /**
       * 
       * URL to the page with description of vulnerability.
       * 
       *
       * string link = 2;
       * @param value The bytes for link to set.
       * @return This builder for chaining.
       */
      public Builder setLinkBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        link_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object package_ = "";
      /**
       * 
       * The package name where vulnerability has been found.
       * 
       *
       * string package = 3;
       * @return The package.
       */
      public java.lang.String getPackage() {
        java.lang.Object ref = package_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          package_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * The package name where vulnerability has been found.
       * 
       *
       * string package = 3;
       * @return The bytes for package.
       */
      public com.google.protobuf.ByteString
          getPackageBytes() {
        java.lang.Object ref = package_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          package_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * The package name where vulnerability has been found.
       * 
       *
       * string package = 3;
       * @param value The package to set.
       * @return This builder for chaining.
       */
      public Builder setPackage(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        package_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The package name where vulnerability has been found.
       * 
       *
       * string package = 3;
       * @return This builder for chaining.
       */
      public Builder clearPackage() {
        
        package_ = getDefaultInstance().getPackage();
        onChanged();
        return this;
      }
      /**
       * 
       * The package name where vulnerability has been found.
       * 
       *
       * string package = 3;
       * @param value The bytes for package to set.
       * @return This builder for chaining.
       */
      public Builder setPackageBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        package_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object source_ = "";
      /**
       * 
       * The package manager name. Ex.: yum, rpm, dpkg.
       * 
       *
       * string source = 4;
       * @return The source.
       */
      public java.lang.String getSource() {
        java.lang.Object ref = source_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          source_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * The package manager name. Ex.: yum, rpm, dpkg.
       * 
       *
       * string source = 4;
       * @return The bytes for source.
       */
      public com.google.protobuf.ByteString
          getSourceBytes() {
        java.lang.Object ref = source_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          source_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * The package manager name. Ex.: yum, rpm, dpkg.
       * 
       *
       * string source = 4;
       * @param value The source to set.
       * @return This builder for chaining.
       */
      public Builder setSource(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        source_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The package manager name. Ex.: yum, rpm, dpkg.
       * 
       *
       * string source = 4;
       * @return This builder for chaining.
       */
      public Builder clearSource() {
        
        source_ = getDefaultInstance().getSource();
        onChanged();
        return this;
      }
      /**
       * 
       * The package manager name. Ex.: yum, rpm, dpkg.
       * 
       *
       * string source = 4;
       * @param value The bytes for source to set.
       * @return This builder for chaining.
       */
      public Builder setSourceBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        source_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object version_ = "";
      /**
       * 
       * The version of the package where vulnerability has been found.
       * 
       *
       * string version = 5;
       * @return The version.
       */
      public java.lang.String getVersion() {
        java.lang.Object ref = version_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          version_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * The version of the package where vulnerability has been found.
       * 
       *
       * string version = 5;
       * @return The bytes for version.
       */
      public com.google.protobuf.ByteString
          getVersionBytes() {
        java.lang.Object ref = version_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          version_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * The version of the package where vulnerability has been found.
       * 
       *
       * string version = 5;
       * @param value The version to set.
       * @return This builder for chaining.
       */
      public Builder setVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The version of the package where vulnerability has been found.
       * 
       *
       * string version = 5;
       * @return This builder for chaining.
       */
      public Builder clearVersion() {
        
        version_ = getDefaultInstance().getVersion();
        onChanged();
        return this;
      }
      /**
       * 
       * The version of the package where vulnerability has been found.
       * 
       *
       * string version = 5;
       * @param value The bytes for version to set.
       * @return This builder for chaining.
       */
      public Builder setVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        version_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object fixedBy_ = "";
      /**
       * 
       * The version of the package where vulnerability has been fixed.
       * 
       *
       * string fixed_by = 6;
       * @return The fixedBy.
       */
      public java.lang.String getFixedBy() {
        java.lang.Object ref = fixedBy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          fixedBy_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * The version of the package where vulnerability has been fixed.
       * 
       *
       * string fixed_by = 6;
       * @return The bytes for fixedBy.
       */
      public com.google.protobuf.ByteString
          getFixedByBytes() {
        java.lang.Object ref = fixedBy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          fixedBy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * The version of the package where vulnerability has been fixed.
       * 
       *
       * string fixed_by = 6;
       * @param value The fixedBy to set.
       * @return This builder for chaining.
       */
      public Builder setFixedBy(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        fixedBy_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * The version of the package where vulnerability has been fixed.
       * 
       *
       * string fixed_by = 6;
       * @return This builder for chaining.
       */
      public Builder clearFixedBy() {
        
        fixedBy_ = getDefaultInstance().getFixedBy();
        onChanged();
        return this;
      }
      /**
       * 
       * The version of the package where vulnerability has been fixed.
       * 
       *
       * string fixed_by = 6;
       * @param value The bytes for fixedBy to set.
       * @return This builder for chaining.
       */
      public Builder setFixedByBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        fixedBy_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.containerregistry.v1.PackageVulnerability)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.containerregistry.v1.PackageVulnerability)
    private static final yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability();
    }
    public static yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public PackageVulnerability parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PackageVulnerability(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.containerregistry.v1.Scanner.PackageVulnerability getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_containerregistry_v1_ScanResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_containerregistry_v1_Vulnerability_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_fieldAccessorTable;
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n/yandex/cloud/containerregistry/v1/scan" +
      "ner.proto\022!yandex.cloud.containerregistr" +
      "y.v1\032\035yandex/cloud/validation.proto\032\037goo" +
      "gle/protobuf/timestamp.proto\"\265\002\n\nScanRes" +
      "ult\022\n\n\002id\030\001 \001(\t\022\020\n\010image_id\030\002 \001(\t\022.\n\nsca" +
      "nned_at\030\003 \001(\0132\032.google.protobuf.Timestam" +
      "p\022D\n\006status\030\004 \001(\01624.yandex.cloud.contain" +
      "erregistry.v1.ScanResult.Status\022N\n\017vulne" +
      "rabilities\030\005 \001(\01325.yandex.cloud.containe" +
      "rregistry.v1.VulnerabilityStats\"C\n\006Statu" +
      "s\022\026\n\022STATUS_UNSPECIFIED\020\000\022\013\n\007RUNNING\020\001\022\t" +
      "\n\005READY\020\002\022\t\n\005ERROR\020\003\"x\n\022VulnerabilitySta" +
      "ts\022\020\n\010critical\030\001 \001(\003\022\014\n\004high\030\002 \001(\003\022\016\n\006me" +
      "dium\030\003 \001(\003\022\013\n\003low\030\004 \001(\003\022\022\n\nnegligible\030\005 " +
      "\001(\003\022\021\n\tundefined\030\006 \001(\003\"\261\002\n\rVulnerability" +
      "\022K\n\010severity\030\001 \001(\01629.yandex.cloud.contai" +
      "nerregistry.v1.Vulnerability.Severity\022J\n" +
      "\007package\030\002 \001(\01327.yandex.cloud.containerr" +
      "egistry.v1.PackageVulnerabilityH\000\"p\n\010Sev" +
      "erity\022\030\n\024SEVERITY_UNSPECIFIED\020\000\022\014\n\010CRITI" +
      "CAL\020\001\022\010\n\004HIGH\020\002\022\n\n\006MEDIUM\020\003\022\007\n\003LOW\020\004\022\016\n\n" +
      "NEGLIGIBLE\020\005\022\r\n\tUNDEFINED\020\006B\025\n\rvulnerabi" +
      "lity\022\004\300\3011\001\"v\n\024PackageVulnerability\022\014\n\004na" +
      "me\030\001 \001(\t\022\014\n\004link\030\002 \001(\t\022\017\n\007package\030\003 \001(\t\022" +
      "\016\n\006source\030\004 \001(\t\022\017\n\007version\030\005 \001(\t\022\020\n\010fixe" +
      "d_by\030\006 \001(\tB\200\001\n%yandex.cloud.api.containe" +
      "rregistry.v1ZWgithub.com/yandex-cloud/go" +
      "-genproto/yandex/cloud/containerregistry" +
      "/v1;containerregistryb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          yandex.cloud.api.Validation.getDescriptor(),
          com.google.protobuf.TimestampProto.getDescriptor(),
        });
    internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_yandex_cloud_containerregistry_v1_ScanResult_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_containerregistry_v1_ScanResult_descriptor,
        new java.lang.String[] { "Id", "ImageId", "ScannedAt", "Status", "Vulnerabilities", });
    internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_containerregistry_v1_VulnerabilityStats_descriptor,
        new java.lang.String[] { "Critical", "High", "Medium", "Low", "Negligible", "Undefined", });
    internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_yandex_cloud_containerregistry_v1_Vulnerability_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_containerregistry_v1_Vulnerability_descriptor,
        new java.lang.String[] { "Severity", "Package", "Vulnerability", });
    internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_containerregistry_v1_PackageVulnerability_descriptor,
        new java.lang.String[] { "Name", "Link", "Package", "Source", "Version", "FixedBy", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(yandex.cloud.api.Validation.exactlyOne);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    yandex.cloud.api.Validation.getDescriptor();
    com.google.protobuf.TimestampProto.getDescriptor();
  }
  // @@protoc_insertion_point(outer_class_scope)
}
                            © 2015 - 2025 Weber Informatics LLC | Privacy Policy