lib/google_api/container_analysis/v1alpha1/model/package_info_note.ex

# 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
#
#     http://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 auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.ContainerAnalysis.V1alpha1.Model.PackageInfoNote do
  @moduledoc """
  PackageInfoNote represents an SPDX Package Information section: https://spdx.github.io/spdx-spec/3-package-information/

  ## Attributes

  *   `analyzed` (*type:* `boolean()`, *default:* `nil`) - Indicates whether the file content of this package has been available for or subjected to analysis when creating the SPDX document
  *   `attribution` (*type:* `String.t`, *default:* `nil`) - A place for the SPDX data creator to record, at the package level, acknowledgements that may be needed to be communicated in some contexts
  *   `checksum` (*type:* `String.t`, *default:* `nil`) - Provide an independently reproducible mechanism that permits unique identification of a specific package that correlates to the data in this SPDX file
  *   `copyright` (*type:* `String.t`, *default:* `nil`) - Identify the copyright holders of the package, as well as any dates present
  *   `detailedDescription` (*type:* `String.t`, *default:* `nil`) - A more detailed description of the package
  *   `downloadLocation` (*type:* `String.t`, *default:* `nil`) - This section identifies the download Universal Resource Locator (URL), or a specific location within a version control system (VCS) for the package at the time that the SPDX file was created
  *   `externalRefs` (*type:* `list(GoogleApi.ContainerAnalysis.V1alpha1.Model.ExternalRef.t)`, *default:* `nil`) - ExternalRef
  *   `filesLicenseInfo` (*type:* `list(String.t)`, *default:* `nil`) - Contain the license the SPDX file creator has concluded as governing the This field is to contain a list of all licenses found in the package. The relationship between licenses (i.e., conjunctive, disjunctive) is not specified in this field – it is simply a listing of all licenses found
  *   `homePage` (*type:* `String.t`, *default:* `nil`) - Provide a place for the SPDX file creator to record a web site that serves as the package's home page
  *   `licenseDeclared` (*type:* `GoogleApi.ContainerAnalysis.V1alpha1.Model.License.t`, *default:* `nil`) - List the licenses that have been declared by the authors of the package
  *   `originator` (*type:* `String.t`, *default:* `nil`) - If the package identified in the SPDX file originated from a different person or organization than identified as Package Supplier, this field identifies from where or whom the package originally came
  *   `packageType` (*type:* `String.t`, *default:* `nil`) - The type of package: OS, MAVEN, GO, GO_STDLIB, etc.
  *   `summaryDescription` (*type:* `String.t`, *default:* `nil`) - A short description of the package
  *   `supplier` (*type:* `String.t`, *default:* `nil`) - Identify the actual distribution source for the package/directory identified in the SPDX file
  *   `title` (*type:* `String.t`, *default:* `nil`) - Identify the full name of the package as given by the Package Originator
  *   `verificationCode` (*type:* `String.t`, *default:* `nil`) - This field provides an independently reproducible mechanism identifying specific contents of a package based on the actual files (except the SPDX file itself, if it is included in the package) that make up each package and that correlates to the data in this SPDX file
  *   `version` (*type:* `String.t`, *default:* `nil`) - Identify the version of the package
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :analyzed => boolean() | nil,
          :attribution => String.t() | nil,
          :checksum => String.t() | nil,
          :copyright => String.t() | nil,
          :detailedDescription => String.t() | nil,
          :downloadLocation => String.t() | nil,
          :externalRefs => list(GoogleApi.ContainerAnalysis.V1alpha1.Model.ExternalRef.t()) | nil,
          :filesLicenseInfo => list(String.t()) | nil,
          :homePage => String.t() | nil,
          :licenseDeclared => GoogleApi.ContainerAnalysis.V1alpha1.Model.License.t() | nil,
          :originator => String.t() | nil,
          :packageType => String.t() | nil,
          :summaryDescription => String.t() | nil,
          :supplier => String.t() | nil,
          :title => String.t() | nil,
          :verificationCode => String.t() | nil,
          :version => String.t() | nil
        }

  field(:analyzed)
  field(:attribution)
  field(:checksum)
  field(:copyright)
  field(:detailedDescription)
  field(:downloadLocation)
  field(:externalRefs, as: GoogleApi.ContainerAnalysis.V1alpha1.Model.ExternalRef, type: :list)
  field(:filesLicenseInfo, type: :list)
  field(:homePage)
  field(:licenseDeclared, as: GoogleApi.ContainerAnalysis.V1alpha1.Model.License)
  field(:originator)
  field(:packageType)
  field(:summaryDescription)
  field(:supplier)
  field(:title)
  field(:verificationCode)
  field(:version)
end

defimpl Poison.Decoder, for: GoogleApi.ContainerAnalysis.V1alpha1.Model.PackageInfoNote do
  def decode(value, options) do
    GoogleApi.ContainerAnalysis.V1alpha1.Model.PackageInfoNote.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.ContainerAnalysis.V1alpha1.Model.PackageInfoNote do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end