/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/devtools/containeranalysis/v1beta1/vulnerability/vulnerability.proto

package io.grafeas.v1beta1.vulnerability;

public interface DetailsOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:grafeas.v1beta1.vulnerability.Details)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The type of package; whether native or non native(ruby gems, node.js
   * packages etc)
   * </pre>
   *
   * <code>string type = 1;</code>
   *
   * @return The type.
   */
  java.lang.String getType();
  /**
   *
   *
   * <pre>
   * The type of package; whether native or non native(ruby gems, node.js
   * packages etc)
   * </pre>
   *
   * <code>string type = 1;</code>
   *
   * @return The bytes for type.
   */
  com.google.protobuf.ByteString getTypeBytes();

  /**
   *
   *
   * <pre>
   * Output only. The note provider assigned Severity of the vulnerability.
   * </pre>
   *
   * <code>.grafeas.v1beta1.vulnerability.Severity severity = 2;</code>
   *
   * @return The enum numeric value on the wire for severity.
   */
  int getSeverityValue();
  /**
   *
   *
   * <pre>
   * Output only. The note provider assigned Severity of the vulnerability.
   * </pre>
   *
   * <code>.grafeas.v1beta1.vulnerability.Severity severity = 2;</code>
   *
   * @return The severity.
   */
  io.grafeas.v1beta1.vulnerability.Severity getSeverity();

  /**
   *
   *
   * <pre>
   * Output only. The CVSS score of this vulnerability. CVSS score is on a
   * scale of 0-10 where 0 indicates low severity and 10 indicates high
   * severity.
   * </pre>
   *
   * <code>float cvss_score = 3;</code>
   *
   * @return The cvssScore.
   */
  float getCvssScore();

  /**
   *
   *
   * <pre>
   * Required. The set of affected locations and their fixes (if available)
   * within the associated resource.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.vulnerability.PackageIssue package_issue = 4;</code>
   */
  java.util.List<io.grafeas.v1beta1.vulnerability.PackageIssue> getPackageIssueList();
  /**
   *
   *
   * <pre>
   * Required. The set of affected locations and their fixes (if available)
   * within the associated resource.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.vulnerability.PackageIssue package_issue = 4;</code>
   */
  io.grafeas.v1beta1.vulnerability.PackageIssue getPackageIssue(int index);
  /**
   *
   *
   * <pre>
   * Required. The set of affected locations and their fixes (if available)
   * within the associated resource.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.vulnerability.PackageIssue package_issue = 4;</code>
   */
  int getPackageIssueCount();
  /**
   *
   *
   * <pre>
   * Required. The set of affected locations and their fixes (if available)
   * within the associated resource.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.vulnerability.PackageIssue package_issue = 4;</code>
   */
  java.util.List<? extends io.grafeas.v1beta1.vulnerability.PackageIssueOrBuilder>
      getPackageIssueOrBuilderList();
  /**
   *
   *
   * <pre>
   * Required. The set of affected locations and their fixes (if available)
   * within the associated resource.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.vulnerability.PackageIssue package_issue = 4;</code>
   */
  io.grafeas.v1beta1.vulnerability.PackageIssueOrBuilder getPackageIssueOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * Output only. A one sentence description of this vulnerability.
   * </pre>
   *
   * <code>string short_description = 5;</code>
   *
   * @return The shortDescription.
   */
  java.lang.String getShortDescription();
  /**
   *
   *
   * <pre>
   * Output only. A one sentence description of this vulnerability.
   * </pre>
   *
   * <code>string short_description = 5;</code>
   *
   * @return The bytes for shortDescription.
   */
  com.google.protobuf.ByteString getShortDescriptionBytes();

  /**
   *
   *
   * <pre>
   * Output only. A detailed description of this vulnerability.
   * </pre>
   *
   * <code>string long_description = 6;</code>
   *
   * @return The longDescription.
   */
  java.lang.String getLongDescription();
  /**
   *
   *
   * <pre>
   * Output only. A detailed description of this vulnerability.
   * </pre>
   *
   * <code>string long_description = 6;</code>
   *
   * @return The bytes for longDescription.
   */
  com.google.protobuf.ByteString getLongDescriptionBytes();

  /**
   *
   *
   * <pre>
   * Output only. URLs related to this vulnerability.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.RelatedUrl related_urls = 7;</code>
   */
  java.util.List<io.grafeas.v1beta1.common.RelatedUrl> getRelatedUrlsList();
  /**
   *
   *
   * <pre>
   * Output only. URLs related to this vulnerability.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.RelatedUrl related_urls = 7;</code>
   */
  io.grafeas.v1beta1.common.RelatedUrl getRelatedUrls(int index);
  /**
   *
   *
   * <pre>
   * Output only. URLs related to this vulnerability.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.RelatedUrl related_urls = 7;</code>
   */
  int getRelatedUrlsCount();
  /**
   *
   *
   * <pre>
   * Output only. URLs related to this vulnerability.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.RelatedUrl related_urls = 7;</code>
   */
  java.util.List<? extends io.grafeas.v1beta1.common.RelatedUrlOrBuilder>
      getRelatedUrlsOrBuilderList();
  /**
   *
   *
   * <pre>
   * Output only. URLs related to this vulnerability.
   * </pre>
   *
   * <code>repeated .grafeas.v1beta1.RelatedUrl related_urls = 7;</code>
   */
  io.grafeas.v1beta1.common.RelatedUrlOrBuilder getRelatedUrlsOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * The distro assigned severity for this vulnerability when it is
   * available, and note provider assigned severity when distro has not yet
   * assigned a severity for this vulnerability.
   * </pre>
   *
   * <code>.grafeas.v1beta1.vulnerability.Severity effective_severity = 8;</code>
   *
   * @return The enum numeric value on the wire for effectiveSeverity.
   */
  int getEffectiveSeverityValue();
  /**
   *
   *
   * <pre>
   * The distro assigned severity for this vulnerability when it is
   * available, and note provider assigned severity when distro has not yet
   * assigned a severity for this vulnerability.
   * </pre>
   *
   * <code>.grafeas.v1beta1.vulnerability.Severity effective_severity = 8;</code>
   *
   * @return The effectiveSeverity.
   */
  io.grafeas.v1beta1.vulnerability.Severity getEffectiveSeverity();
}
