# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/recommender/v1/recommendation.proto

require 'google/api/resource_pb'
require 'google/protobuf/duration_pb'
require 'google/protobuf/struct_pb'
require 'google/protobuf/timestamp_pb'
require 'google/type/money_pb'
require 'google/protobuf'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/cloud/recommender/v1/recommendation.proto", :syntax => :proto3) do
    add_message "google.cloud.recommender.v1.Recommendation" do
      optional :name, :string, 1
      optional :description, :string, 2
      optional :recommender_subtype, :string, 12
      optional :last_refresh_time, :message, 4, "google.protobuf.Timestamp"
      optional :primary_impact, :message, 5, "google.cloud.recommender.v1.Impact"
      repeated :additional_impact, :message, 6, "google.cloud.recommender.v1.Impact"
      optional :content, :message, 7, "google.cloud.recommender.v1.RecommendationContent"
      optional :state_info, :message, 10, "google.cloud.recommender.v1.RecommendationStateInfo"
      optional :etag, :string, 11
      repeated :associated_insights, :message, 14, "google.cloud.recommender.v1.Recommendation.InsightReference"
    end
    add_message "google.cloud.recommender.v1.Recommendation.InsightReference" do
      optional :insight, :string, 1
    end
    add_message "google.cloud.recommender.v1.RecommendationContent" do
      repeated :operation_groups, :message, 2, "google.cloud.recommender.v1.OperationGroup"
    end
    add_message "google.cloud.recommender.v1.OperationGroup" do
      repeated :operations, :message, 1, "google.cloud.recommender.v1.Operation"
    end
    add_message "google.cloud.recommender.v1.Operation" do
      optional :action, :string, 1
      optional :resource_type, :string, 2
      optional :resource, :string, 3
      optional :path, :string, 4
      optional :source_resource, :string, 5
      optional :source_path, :string, 6
      map :path_filters, :string, :message, 8, "google.protobuf.Value"
      map :path_value_matchers, :string, :message, 11, "google.cloud.recommender.v1.ValueMatcher"
      oneof :path_value do
        optional :value, :message, 7, "google.protobuf.Value"
        optional :value_matcher, :message, 10, "google.cloud.recommender.v1.ValueMatcher"
      end
    end
    add_message "google.cloud.recommender.v1.ValueMatcher" do
      oneof :match_variant do
        optional :matches_pattern, :string, 1
      end
    end
    add_message "google.cloud.recommender.v1.CostProjection" do
      optional :cost, :message, 1, "google.type.Money"
      optional :duration, :message, 2, "google.protobuf.Duration"
    end
    add_message "google.cloud.recommender.v1.Impact" do
      optional :category, :enum, 1, "google.cloud.recommender.v1.Impact.Category"
      oneof :projection do
        optional :cost_projection, :message, 100, "google.cloud.recommender.v1.CostProjection"
      end
    end
    add_enum "google.cloud.recommender.v1.Impact.Category" do
      value :CATEGORY_UNSPECIFIED, 0
      value :COST, 1
      value :SECURITY, 2
      value :PERFORMANCE, 3
      value :MANAGEABILITY, 4
    end
    add_message "google.cloud.recommender.v1.RecommendationStateInfo" do
      optional :state, :enum, 1, "google.cloud.recommender.v1.RecommendationStateInfo.State"
      map :state_metadata, :string, :string, 2
    end
    add_enum "google.cloud.recommender.v1.RecommendationStateInfo.State" do
      value :STATE_UNSPECIFIED, 0
      value :ACTIVE, 1
      value :CLAIMED, 6
      value :SUCCEEDED, 3
      value :FAILED, 4
      value :DISMISSED, 5
    end
  end
end

module Google
  module Cloud
    module Recommender
      module V1
        Recommendation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Recommendation").msgclass
        Recommendation::InsightReference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Recommendation.InsightReference").msgclass
        RecommendationContent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationContent").msgclass
        OperationGroup = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.OperationGroup").msgclass
        Operation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Operation").msgclass
        ValueMatcher = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ValueMatcher").msgclass
        CostProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.CostProjection").msgclass
        Impact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact").msgclass
        Impact::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact.Category").enummodule
        RecommendationStateInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationStateInfo").msgclass
        RecommendationStateInfo::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationStateInfo.State").enummodule
      end
    end
  end
end