v1beta1/doc/grafeas/v1beta1/doc_grafeas.js

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

// Note: this file is purely for documentation. Any contents are not expected
// to be loaded as the JS file.

/**
 * An instance of an analysis type that has been found on a resource.
 *
 * @property {string} name
 *   Output only. The name of the occurrence in the form of
 *   `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
 *
 * @property {Object} resource
 *   Required. Immutable. The resource for which the occurrence applies.
 *
 *   This object should have the same structure as [Resource]{@link grafeas.v1beta1.Resource}
 *
 * @property {string} noteName
 *   Required. Immutable. The analysis note associated with this occurrence, in
 *   the form of `projects[PROVIDER_ID]/notes/[NOTE_ID]`. This field can be used
 *   as a filter in list requests.
 *
 * @property {number} kind
 *   Output only. This explicitly denotes which of the occurrence details are
 *   specified. This field can be used as a filter in list requests.
 *
 *   The number should be among the values of [NoteKind]{@link grafeas.v1beta1.NoteKind}
 *
 * @property {string} remediation
 *   A description of actions that can be taken to remedy the note.
 *
 * @property {Object} createTime
 *   Output only. The time this occurrence was created.
 *
 *   This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
 *
 * @property {Object} updateTime
 *   Output only. The time this occurrence was last updated.
 *
 *   This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
 *
 * @property {Object} vulnerability
 *   Describes a security vulnerability.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.vulnerability.Details}
 *
 * @property {Object} build
 *   Describes a verifiable build.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.build.Details}
 *
 * @property {Object} derivedImage
 *   Describes how this resource derives from the basis in the associated
 *   note.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.image.Details}
 *
 * @property {Object} installation
 *   Describes the installation of a package on the linked resource.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.package.Details}
 *
 * @property {Object} deployment
 *   Describes the deployment of an artifact on a runtime.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.deployment.Details}
 *
 * @property {Object} discovered
 *   Describes when a resource was discovered.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.discovery.Details}
 *
 * @property {Object} attestation
 *   Describes an attestation of an artifact.
 *
 *   This object should have the same structure as [Details]{@link grafeas.v1beta1.attestation.Details}
 *
 * @typedef Occurrence
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.Occurrence definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const Occurrence = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * An entity that can have metadata. For example, a Docker image.
 *
 * @property {string} name
 *   The name of the resource. For example, the name of a Docker image -
 *   "Debian".
 *
 * @property {string} uri
 *   The unique URI of the resource. For example,
 *   `https://gcr.io/project/image@sha256:foo` for a Docker image.
 *
 * @property {Object} contentHash
 *   The hash of the resource content. For example, the Docker digest.
 *
 *   This object should have the same structure as [Hash]{@link grafeas.v1beta1.provenance.Hash}
 *
 * @typedef Resource
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.Resource definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const Resource = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * A type of analysis that can be done for a resource.
 *
 * @property {string} name
 *   Output only. The name of the note in the form of
 *   `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
 *
 * @property {string} shortDescription
 *   A one sentence description of this note.
 *
 * @property {string} longDescription
 *   A detailed description of this note.
 *
 * @property {number} kind
 *   Output only. The type of analysis. This field can be used as a filter in
 *   list requests.
 *
 *   The number should be among the values of [NoteKind]{@link grafeas.v1beta1.NoteKind}
 *
 * @property {Object[]} relatedUrl
 *   URLs associated with this note.
 *
 *   This object should have the same structure as [RelatedUrl]{@link grafeas.v1beta1.RelatedUrl}
 *
 * @property {Object} expirationTime
 *   Time of expiration for this note. Empty if note does not expire.
 *
 *   This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
 *
 * @property {Object} createTime
 *   Output only. The time this note was created. This field can be used as a
 *   filter in list requests.
 *
 *   This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
 *
 * @property {Object} updateTime
 *   Output only. The time this note was last updated. This field can be used as
 *   a filter in list requests.
 *
 *   This object should have the same structure as [Timestamp]{@link google.protobuf.Timestamp}
 *
 * @property {string[]} relatedNoteNames
 *   Other notes related to this note.
 *
 * @property {Object} vulnerability
 *   A note describing a package vulnerability.
 *
 *   This object should have the same structure as [Vulnerability]{@link grafeas.v1beta1.vulnerability.Vulnerability}
 *
 * @property {Object} build
 *   A note describing build provenance for a verifiable build.
 *
 *   This object should have the same structure as [Build]{@link grafeas.v1beta1.build.Build}
 *
 * @property {Object} baseImage
 *   A note describing a base image.
 *
 *   This object should have the same structure as [Basis]{@link grafeas.v1beta1.image.Basis}
 *
 * @property {Object} package
 *   A note describing a package hosted by various package managers.
 *
 *   This object should have the same structure as [Package]{@link grafeas.v1beta1.package.Package}
 *
 * @property {Object} deployable
 *   A note describing something that can be deployed.
 *
 *   This object should have the same structure as [Deployable]{@link grafeas.v1beta1.deployment.Deployable}
 *
 * @property {Object} discovery
 *   A note describing the initial analysis of a resource.
 *
 *   This object should have the same structure as [Discovery]{@link grafeas.v1beta1.discovery.Discovery}
 *
 * @property {Object} attestationAuthority
 *   A note describing an attestation role.
 *
 *   This object should have the same structure as [Authority]{@link grafeas.v1beta1.attestation.Authority}
 *
 * @typedef Note
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.Note definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const Note = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to get an occurrence.
 *
 * @property {string} name
 *   The name of the occurrence in the form of
 *   `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
 *
 * @typedef GetOccurrenceRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.GetOccurrenceRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const GetOccurrenceRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to list occurrences.
 *
 * @property {string} parent
 *   The name of the project to list occurrences for in the form of
 *   `projects/[PROJECT_ID]`.
 *
 * @property {string} filter
 *   The filter expression.
 *
 * @property {number} pageSize
 *   Number of occurrences to return in the list.
 *
 * @property {string} pageToken
 *   Token to provide to skip to a particular spot in the list.
 *
 * @typedef ListOccurrencesRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListOccurrencesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListOccurrencesRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Response for listing occurrences.
 *
 * @property {Object[]} occurrences
 *   The occurrences requested.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @property {string} nextPageToken
 *   The next pagination token in the list response. It should be used as
 *   `page_token` for the following request. An empty value means no more
 *   results.
 *
 * @typedef ListOccurrencesResponse
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListOccurrencesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListOccurrencesResponse = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to delete a occurrence.
 *
 * @property {string} name
 *   The name of the occurrence in the form of
 *   `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
 *
 * @typedef DeleteOccurrenceRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.DeleteOccurrenceRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const DeleteOccurrenceRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to create a new occurrence.
 *
 * @property {string} parent
 *   The name of the project in the form of `projects/[PROJECT_ID]`, under which
 *   the occurrence is to be created.
 *
 * @property {Object} occurrence
 *   The occurrence to create.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @typedef CreateOccurrenceRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.CreateOccurrenceRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const CreateOccurrenceRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to update an occurrence.
 *
 * @property {string} name
 *   The name of the occurrence in the form of
 *   `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
 *
 * @property {Object} occurrence
 *   The updated occurrence.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @property {Object} updateMask
 *   The fields to update.
 *
 *   This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
 *
 * @typedef UpdateOccurrenceRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.UpdateOccurrenceRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const UpdateOccurrenceRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to get a note.
 *
 * @property {string} name
 *   The name of the note in the form of
 *   `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
 *
 * @typedef GetNoteRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.GetNoteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const GetNoteRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to get the note to which the specified occurrence is attached.
 *
 * @property {string} name
 *   The name of the occurrence in the form of
 *   `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.
 *
 * @typedef GetOccurrenceNoteRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.GetOccurrenceNoteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const GetOccurrenceNoteRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to list notes.
 *
 * @property {string} parent
 *   The name of the project to list notes for in the form of
 *   `projects/[PROJECT_ID]`.
 *
 * @property {string} filter
 *   The filter expression.
 *
 * @property {number} pageSize
 *   Number of notes to return in the list.
 *
 * @property {string} pageToken
 *   Token to provide to skip to a particular spot in the list.
 *
 * @typedef ListNotesRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListNotesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListNotesRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Response for listing notes.
 *
 * @property {Object[]} notes
 *   The notes requested.
 *
 *   This object should have the same structure as [Note]{@link grafeas.v1beta1.Note}
 *
 * @property {string} nextPageToken
 *   The next pagination token in the list response. It should be used as
 *   `page_token` for the following request. An empty value means no more
 *   results.
 *
 * @typedef ListNotesResponse
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListNotesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListNotesResponse = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to delete a note.
 *
 * @property {string} name
 *   The name of the note in the form of
 *   `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
 *
 * @typedef DeleteNoteRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.DeleteNoteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const DeleteNoteRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to create a new note.
 *
 * @property {string} parent
 *   The name of the project in the form of `projects/[PROJECT_ID]`, under which
 *   the note is to be created.
 *
 * @property {string} noteId
 *   The ID to use for this note.
 *
 * @property {Object} note
 *   The note to create.
 *
 *   This object should have the same structure as [Note]{@link grafeas.v1beta1.Note}
 *
 * @typedef CreateNoteRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.CreateNoteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const CreateNoteRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to update a note.
 *
 * @property {string} name
 *   The name of the note in the form of
 *   `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
 *
 * @property {Object} note
 *   The updated note.
 *
 *   This object should have the same structure as [Note]{@link grafeas.v1beta1.Note}
 *
 * @property {Object} updateMask
 *   The fields to update.
 *
 *   This object should have the same structure as [FieldMask]{@link google.protobuf.FieldMask}
 *
 * @typedef UpdateNoteRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.UpdateNoteRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const UpdateNoteRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to list occurrences for a note.
 *
 * @property {string} name
 *   The name of the note to list occurrences for in the form of
 *   `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
 *
 * @property {string} filter
 *   The filter expression.
 *
 * @property {number} pageSize
 *   Number of occurrences to return in the list.
 *
 * @property {string} pageToken
 *   Token to provide to skip to a particular spot in the list.
 *
 * @typedef ListNoteOccurrencesRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListNoteOccurrencesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListNoteOccurrencesRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Response for listing occurrences for a note.
 *
 * @property {Object[]} occurrences
 *   The occurrences attached to the specified note.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @property {string} nextPageToken
 *   Token to provide to skip to a particular spot in the list.
 *
 * @typedef ListNoteOccurrencesResponse
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.ListNoteOccurrencesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const ListNoteOccurrencesResponse = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to create notes in batch.
 *
 * @property {string} parent
 *   The name of the project in the form of `projects/[PROJECT_ID]`, under which
 *   the notes are to be created.
 *
 * @property {Object.<string, Object>} notes
 *   The notes to create.
 *
 * @typedef BatchCreateNotesRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.BatchCreateNotesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const BatchCreateNotesRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Response for creating notes in batch.
 *
 * @property {Object[]} notes
 *   The notes that were created.
 *
 *   This object should have the same structure as [Note]{@link grafeas.v1beta1.Note}
 *
 * @typedef BatchCreateNotesResponse
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.BatchCreateNotesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const BatchCreateNotesResponse = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to create occurrences in batch.
 *
 * @property {string} parent
 *   The name of the project in the form of `projects/[PROJECT_ID]`, under which
 *   the occurrences are to be created.
 *
 * @property {Object[]} occurrences
 *   The occurrences to create.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @typedef BatchCreateOccurrencesRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.BatchCreateOccurrencesRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const BatchCreateOccurrencesRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Response for creating occurrences in batch.
 *
 * @property {Object[]} occurrences
 *   The occurrences that were created.
 *
 *   This object should have the same structure as [Occurrence]{@link grafeas.v1beta1.Occurrence}
 *
 * @typedef BatchCreateOccurrencesResponse
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.BatchCreateOccurrencesResponse definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const BatchCreateOccurrencesResponse = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * Request to get a vulnerability summary for some set of occurrences.
 *
 * @property {string} parent
 *   The name of the project to get a vulnerability summary for in the form of
 *   `projects/[PROJECT_ID]`.
 *
 * @property {string} filter
 *   The filter expression.
 *
 * @typedef GetVulnerabilityOccurrencesSummaryRequest
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.GetVulnerabilityOccurrencesSummaryRequest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const GetVulnerabilityOccurrencesSummaryRequest = {
  // This is for documentation. Actual contents will be loaded by gRPC.
};

/**
 * A summary of how many vulnerability occurrences there are per resource and
 * severity type.
 *
 * @property {Object[]} counts
 *   A listing by resource of the number of fixable and total vulnerabilities.
 *
 *   This object should have the same structure as [FixableTotalByDigest]{@link grafeas.v1beta1.FixableTotalByDigest}
 *
 * @typedef VulnerabilityOccurrencesSummary
 * @memberof grafeas.v1beta1
 * @see [grafeas.v1beta1.VulnerabilityOccurrencesSummary definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
 */
const VulnerabilityOccurrencesSummary = {
  // This is for documentation. Actual contents will be loaded by gRPC.

  /**
   * Per resource and severity counts of fixable and total vulnerabilites.
   *
   * @property {Object} resource
   *   The affected resource.
   *
   *   This object should have the same structure as [Resource]{@link grafeas.v1beta1.Resource}
   *
   * @property {number} severity
   *   The severity for this count. SEVERITY_UNSPECIFIED indicates total across
   *   all severities.
   *
   *   The number should be among the values of [Severity]{@link grafeas.v1beta1.vulnerability.Severity}
   *
   * @property {number} fixableCount
   *   The number of fixable vulnerabilities associated with this resource.
   *
   * @property {number} totalCount
   *   The total number of vulnerabilities associated with this resource.
   *
   * @typedef FixableTotalByDigest
   * @memberof grafeas.v1beta1
   * @see [grafeas.v1beta1.VulnerabilityOccurrencesSummary.FixableTotalByDigest definition in proto format]{@link https://github.com/googleapis/googleapis/blob/master/google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto}
   */
  FixableTotalByDigest: {
    // This is for documentation. Actual contents will be loaded by gRPC.
  }
};