# 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.DLP.V2.Model.GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails do
  @moduledoc """
  Result of a risk analysis operation request.

  ## Attributes

  *   `categoricalStatsResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2CategoricalStatsResult.t`, *default:* `nil`) - Categorical stats result
  *   `deltaPresenceEstimationResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2DeltaPresenceEstimationResult.t`, *default:* `nil`) - Delta-presence result
  *   `kAnonymityResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KAnonymityResult.t`, *default:* `nil`) - K-anonymity result
  *   `kMapEstimationResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KMapEstimationResult.t`, *default:* `nil`) - K-map result
  *   `lDiversityResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2LDiversityResult.t`, *default:* `nil`) - L-divesity result
  *   `numericalStatsResult` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2NumericalStatsResult.t`, *default:* `nil`) - Numerical stats result
  *   `requestedOptions` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2RequestedRiskAnalysisOptions.t`, *default:* `nil`) - The configuration used for this job.
  *   `requestedPrivacyMetric` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2PrivacyMetric.t`, *default:* `nil`) - Privacy metric to compute.
  *   `requestedSourceTable` (*type:* `GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2BigQueryTable.t`, *default:* `nil`) - Input dataset to compute metrics over.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :categoricalStatsResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2CategoricalStatsResult.t() | nil,
          :deltaPresenceEstimationResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2DeltaPresenceEstimationResult.t() | nil,
          :kAnonymityResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KAnonymityResult.t() | nil,
          :kMapEstimationResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KMapEstimationResult.t() | nil,
          :lDiversityResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2LDiversityResult.t() | nil,
          :numericalStatsResult =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2NumericalStatsResult.t() | nil,
          :requestedOptions =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2RequestedRiskAnalysisOptions.t() | nil,
          :requestedPrivacyMetric =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2PrivacyMetric.t() | nil,
          :requestedSourceTable =>
            GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2BigQueryTable.t() | nil
        }

  field(:categoricalStatsResult,
    as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2CategoricalStatsResult
  )

  field(:deltaPresenceEstimationResult,
    as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2DeltaPresenceEstimationResult
  )

  field(:kAnonymityResult, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KAnonymityResult)
  field(:kMapEstimationResult, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2KMapEstimationResult)
  field(:lDiversityResult, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2LDiversityResult)
  field(:numericalStatsResult, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2NumericalStatsResult)

  field(:requestedOptions,
    as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2RequestedRiskAnalysisOptions
  )

  field(:requestedPrivacyMetric, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2PrivacyMetric)
  field(:requestedSourceTable, as: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2BigQueryTable)
end

defimpl Poison.Decoder, for: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails do
  def decode(value, options) do
    GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails.decode(value, options)
  end
end

defimpl Poison.Encoder, for: GoogleApi.DLP.V2.Model.GooglePrivacyDlpV2AnalyzeDataSourceRiskDetails do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
