# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/recommender_v1beta1/proto/recommendation.proto

import sys

_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1"))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.type import money_pb2 as google_dot_type_dot_money__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/recommender_v1beta1/proto/recommendation.proto",
    package="google.cloud.recommender.v1beta1",
    syntax="proto3",
    serialized_options=_b(
        "\n$com.google.cloud.recommender.v1beta1P\001ZKgoogle.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender\242\002\004CREC\252\002 Google.Cloud.Recommender.V1Beta1"
    ),
    serialized_pb=_b(
        '\n;google/cloud/recommender_v1beta1/proto/recommendation.proto\x12 google.cloud.recommender.v1beta1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/type/money.proto"\xb5\x03\n\x0eRecommendation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x1b\n\x13recommender_subtype\x18\x0c \x01(\t\x12\x35\n\x11last_refresh_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12@\n\x0eprimary_impact\x18\x05 \x01(\x0b\x32(.google.cloud.recommender.v1beta1.Impact\x12\x43\n\x11\x61\x64\x64itional_impact\x18\x06 \x03(\x0b\x32(.google.cloud.recommender.v1beta1.Impact\x12H\n\x07\x63ontent\x18\x07 \x01(\x0b\x32\x37.google.cloud.recommender.v1beta1.RecommendationContent\x12M\n\nstate_info\x18\n \x01(\x0b\x32\x39.google.cloud.recommender.v1beta1.RecommendationStateInfo\x12\x0c\n\x04\x65tag\x18\x0b \x01(\t"c\n\x15RecommendationContent\x12J\n\x10operation_groups\x18\x02 \x03(\x0b\x32\x30.google.cloud.recommender.v1beta1.OperationGroup"Q\n\x0eOperationGroup\x12?\n\noperations\x18\x01 \x03(\x0b\x32+.google.cloud.recommender.v1beta1.Operation"\xc7\x02\n\tOperation\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x10\n\x08resource\x18\x03 \x01(\t\x12\x0c\n\x04path\x18\x04 \x01(\t\x12\x17\n\x0fsource_resource\x18\x05 \x01(\t\x12\x13\n\x0bsource_path\x18\x06 \x01(\t\x12%\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.Value\x12R\n\x0cpath_filters\x18\x08 \x03(\x0b\x32<.google.cloud.recommender.v1beta1.Operation.PathFiltersEntry\x1aJ\n\x10PathFiltersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01"_\n\x0e\x43ostProjection\x12 \n\x04\x63ost\x18\x01 \x01(\x0b\x32\x12.google.type.Money\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration"\xf7\x01\n\x06Impact\x12\x43\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32\x31.google.cloud.recommender.v1beta1.Impact.Category\x12K\n\x0f\x63ost_projection\x18\x64 \x01(\x0b\x32\x30.google.cloud.recommender.v1beta1.CostProjectionH\x00"M\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x08\n\x04\x43OST\x10\x01\x12\x0c\n\x08SECURITY\x10\x02\x12\x0f\n\x0bPERFORMANCE\x10\x03\x42\x0c\n\nprojection"\xe8\x02\n\x17RecommendationStateInfo\x12N\n\x05state\x18\x01 \x01(\x0e\x32?.google.cloud.recommender.v1beta1.RecommendationStateInfo.State\x12\x64\n\x0estate_metadata\x18\x02 \x03(\x0b\x32L.google.cloud.recommender.v1beta1.RecommendationStateInfo.StateMetadataEntry\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"a\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0b\n\x07\x43LAIMED\x10\x06\x12\r\n\tSUCCEEDED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\r\n\tDISMISSED\x10\x05\x42\x9f\x01\n$com.google.cloud.recommender.v1beta1P\x01ZKgoogle.golang.org/genproto/googleapis/cloud/recommender/v1beta1;recommender\xa2\x02\x04\x43REC\xaa\x02 Google.Cloud.Recommender.V1Beta1b\x06proto3'
    ),
    dependencies=[
        google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,
        google_dot_type_dot_money__pb2.DESCRIPTOR,
    ],
)


_IMPACT_CATEGORY = _descriptor.EnumDescriptor(
    name="Category",
    full_name="google.cloud.recommender.v1beta1.Impact.Category",
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name="CATEGORY_UNSPECIFIED",
            index=0,
            number=0,
            serialized_options=None,
            type=None,
        ),
        _descriptor.EnumValueDescriptor(
            name="COST", index=1, number=1, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="SECURITY", index=2, number=2, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="PERFORMANCE", index=3, number=3, serialized_options=None, type=None
        ),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1425,
    serialized_end=1502,
)
_sym_db.RegisterEnumDescriptor(_IMPACT_CATEGORY)

_RECOMMENDATIONSTATEINFO_STATE = _descriptor.EnumDescriptor(
    name="State",
    full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.State",
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name="STATE_UNSPECIFIED",
            index=0,
            number=0,
            serialized_options=None,
            type=None,
        ),
        _descriptor.EnumValueDescriptor(
            name="ACTIVE", index=1, number=1, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="CLAIMED", index=2, number=6, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="SUCCEEDED", index=3, number=3, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="FAILED", index=4, number=4, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="DISMISSED", index=5, number=5, serialized_options=None, type=None
        ),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1782,
    serialized_end=1879,
)
_sym_db.RegisterEnumDescriptor(_RECOMMENDATIONSTATEINFO_STATE)


_RECOMMENDATION = _descriptor.Descriptor(
    name="Recommendation",
    full_name="google.cloud.recommender.v1beta1.Recommendation",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.cloud.recommender.v1beta1.Recommendation.name",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="description",
            full_name="google.cloud.recommender.v1beta1.Recommendation.description",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="recommender_subtype",
            full_name="google.cloud.recommender.v1beta1.Recommendation.recommender_subtype",
            index=2,
            number=12,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="last_refresh_time",
            full_name="google.cloud.recommender.v1beta1.Recommendation.last_refresh_time",
            index=3,
            number=4,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="primary_impact",
            full_name="google.cloud.recommender.v1beta1.Recommendation.primary_impact",
            index=4,
            number=5,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="additional_impact",
            full_name="google.cloud.recommender.v1beta1.Recommendation.additional_impact",
            index=5,
            number=6,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="content",
            full_name="google.cloud.recommender.v1beta1.Recommendation.content",
            index=6,
            number=7,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="state_info",
            full_name="google.cloud.recommender.v1beta1.Recommendation.state_info",
            index=7,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="etag",
            full_name="google.cloud.recommender.v1beta1.Recommendation.etag",
            index=8,
            number=11,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=218,
    serialized_end=655,
)


_RECOMMENDATIONCONTENT = _descriptor.Descriptor(
    name="RecommendationContent",
    full_name="google.cloud.recommender.v1beta1.RecommendationContent",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="operation_groups",
            full_name="google.cloud.recommender.v1beta1.RecommendationContent.operation_groups",
            index=0,
            number=2,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        )
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=657,
    serialized_end=756,
)


_OPERATIONGROUP = _descriptor.Descriptor(
    name="OperationGroup",
    full_name="google.cloud.recommender.v1beta1.OperationGroup",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="operations",
            full_name="google.cloud.recommender.v1beta1.OperationGroup.operations",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        )
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=758,
    serialized_end=839,
)


_OPERATION_PATHFILTERSENTRY = _descriptor.Descriptor(
    name="PathFiltersEntry",
    full_name="google.cloud.recommender.v1beta1.Operation.PathFiltersEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.cloud.recommender.v1beta1.Operation.PathFiltersEntry.key",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="value",
            full_name="google.cloud.recommender.v1beta1.Operation.PathFiltersEntry.value",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1095,
    serialized_end=1169,
)

_OPERATION = _descriptor.Descriptor(
    name="Operation",
    full_name="google.cloud.recommender.v1beta1.Operation",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="action",
            full_name="google.cloud.recommender.v1beta1.Operation.action",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="resource_type",
            full_name="google.cloud.recommender.v1beta1.Operation.resource_type",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="resource",
            full_name="google.cloud.recommender.v1beta1.Operation.resource",
            index=2,
            number=3,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="path",
            full_name="google.cloud.recommender.v1beta1.Operation.path",
            index=3,
            number=4,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="source_resource",
            full_name="google.cloud.recommender.v1beta1.Operation.source_resource",
            index=4,
            number=5,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="source_path",
            full_name="google.cloud.recommender.v1beta1.Operation.source_path",
            index=5,
            number=6,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="value",
            full_name="google.cloud.recommender.v1beta1.Operation.value",
            index=6,
            number=7,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="path_filters",
            full_name="google.cloud.recommender.v1beta1.Operation.path_filters",
            index=7,
            number=8,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[_OPERATION_PATHFILTERSENTRY],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=842,
    serialized_end=1169,
)


_COSTPROJECTION = _descriptor.Descriptor(
    name="CostProjection",
    full_name="google.cloud.recommender.v1beta1.CostProjection",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="cost",
            full_name="google.cloud.recommender.v1beta1.CostProjection.cost",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="duration",
            full_name="google.cloud.recommender.v1beta1.CostProjection.duration",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1171,
    serialized_end=1266,
)


_IMPACT = _descriptor.Descriptor(
    name="Impact",
    full_name="google.cloud.recommender.v1beta1.Impact",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="category",
            full_name="google.cloud.recommender.v1beta1.Impact.category",
            index=0,
            number=1,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="cost_projection",
            full_name="google.cloud.recommender.v1beta1.Impact.cost_projection",
            index=1,
            number=100,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[_IMPACT_CATEGORY],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="projection",
            full_name="google.cloud.recommender.v1beta1.Impact.projection",
            index=0,
            containing_type=None,
            fields=[],
        )
    ],
    serialized_start=1269,
    serialized_end=1516,
)


_RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY = _descriptor.Descriptor(
    name="StateMetadataEntry",
    full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.StateMetadataEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.StateMetadataEntry.key",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="value",
            full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.StateMetadataEntry.value",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1728,
    serialized_end=1780,
)

_RECOMMENDATIONSTATEINFO = _descriptor.Descriptor(
    name="RecommendationStateInfo",
    full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="state",
            full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.state",
            index=0,
            number=1,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="state_metadata",
            full_name="google.cloud.recommender.v1beta1.RecommendationStateInfo.state_metadata",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[_RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY],
    enum_types=[_RECOMMENDATIONSTATEINFO_STATE],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1519,
    serialized_end=1879,
)

_RECOMMENDATION.fields_by_name[
    "last_refresh_time"
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_RECOMMENDATION.fields_by_name["primary_impact"].message_type = _IMPACT
_RECOMMENDATION.fields_by_name["additional_impact"].message_type = _IMPACT
_RECOMMENDATION.fields_by_name["content"].message_type = _RECOMMENDATIONCONTENT
_RECOMMENDATION.fields_by_name["state_info"].message_type = _RECOMMENDATIONSTATEINFO
_RECOMMENDATIONCONTENT.fields_by_name["operation_groups"].message_type = _OPERATIONGROUP
_OPERATIONGROUP.fields_by_name["operations"].message_type = _OPERATION
_OPERATION_PATHFILTERSENTRY.fields_by_name[
    "value"
].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_OPERATION_PATHFILTERSENTRY.containing_type = _OPERATION
_OPERATION.fields_by_name[
    "value"
].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_OPERATION.fields_by_name["path_filters"].message_type = _OPERATION_PATHFILTERSENTRY
_COSTPROJECTION.fields_by_name[
    "cost"
].message_type = google_dot_type_dot_money__pb2._MONEY
_COSTPROJECTION.fields_by_name[
    "duration"
].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_IMPACT.fields_by_name["category"].enum_type = _IMPACT_CATEGORY
_IMPACT.fields_by_name["cost_projection"].message_type = _COSTPROJECTION
_IMPACT_CATEGORY.containing_type = _IMPACT
_IMPACT.oneofs_by_name["projection"].fields.append(
    _IMPACT.fields_by_name["cost_projection"]
)
_IMPACT.fields_by_name["cost_projection"].containing_oneof = _IMPACT.oneofs_by_name[
    "projection"
]
_RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY.containing_type = _RECOMMENDATIONSTATEINFO
_RECOMMENDATIONSTATEINFO.fields_by_name[
    "state"
].enum_type = _RECOMMENDATIONSTATEINFO_STATE
_RECOMMENDATIONSTATEINFO.fields_by_name[
    "state_metadata"
].message_type = _RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY
_RECOMMENDATIONSTATEINFO_STATE.containing_type = _RECOMMENDATIONSTATEINFO
DESCRIPTOR.message_types_by_name["Recommendation"] = _RECOMMENDATION
DESCRIPTOR.message_types_by_name["RecommendationContent"] = _RECOMMENDATIONCONTENT
DESCRIPTOR.message_types_by_name["OperationGroup"] = _OPERATIONGROUP
DESCRIPTOR.message_types_by_name["Operation"] = _OPERATION
DESCRIPTOR.message_types_by_name["CostProjection"] = _COSTPROJECTION
DESCRIPTOR.message_types_by_name["Impact"] = _IMPACT
DESCRIPTOR.message_types_by_name["RecommendationStateInfo"] = _RECOMMENDATIONSTATEINFO
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Recommendation = _reflection.GeneratedProtocolMessageType(
    "Recommendation",
    (_message.Message,),
    dict(
        DESCRIPTOR=_RECOMMENDATION,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""A recommendation along with a suggested action. E.g., a rightsizing
  recommendation for an underutilized VM, IAM role recommendations, etc
  
  
  Attributes:
      name:
          Name of recommendation.  A project recommendation is
          represented as projects/[PROJECT\_NUMBER]/locations/[LOCATION]
          /recommenders/[RECOMMENDER\_ID]/recommendations/[RECOMMENDATIO
          N\_ID]
      description:
          Free-form human readable summary in English. The maximum
          length is 500 characters.
      recommender_subtype:
          Contains an identifier for a subtype of recommendations
          produced for the same recommender. Subtype is a function of
          content and impact, meaning a new subtype will be added when
          either content or primary impact category changes.  Examples:
          For recommender = "google.iam.policy.RoleRecommender",
          recommender\_subtype can be one of
          "REMOVE\_ROLE"/"REPLACE\_ROLE"
      last_refresh_time:
          Last time this recommendation was refreshed by the system that
          created it in the first place.
      primary_impact:
          The primary impact that this recommendation can have while
          trying to optimize for one category.
      additional_impact:
          Optional set of additional impact that this recommendation may
          have when trying to optimize for the primary category. These
          may be positive or negative.
      content:
          Content of the recommendation describing recommended changes
          to resources.
      state_info:
          Information for state. Contains state and metadata.
      etag:
          Fingerprint of the Recommendation. Provides optimistic locking
          when updating states.
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.Recommendation)
    ),
)
_sym_db.RegisterMessage(Recommendation)

RecommendationContent = _reflection.GeneratedProtocolMessageType(
    "RecommendationContent",
    (_message.Message,),
    dict(
        DESCRIPTOR=_RECOMMENDATIONCONTENT,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Contains what resources are changing and how they are changing.
  
  
  Attributes:
      operation_groups:
          Operations to one or more Google Cloud resources grouped in
          such a way that, all operations within one group are expected
          to be performed atomically and in an order.
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.RecommendationContent)
    ),
)
_sym_db.RegisterMessage(RecommendationContent)

OperationGroup = _reflection.GeneratedProtocolMessageType(
    "OperationGroup",
    (_message.Message,),
    dict(
        DESCRIPTOR=_OPERATIONGROUP,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Group of operations that need to be performed atomically.
  
  
  Attributes:
      operations:
          List of operations across one or more resources that belong to
          this group. Loosely based on RFC6902 and should be performed
          in the order they appear.
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.OperationGroup)
    ),
)
_sym_db.RegisterMessage(OperationGroup)

Operation = _reflection.GeneratedProtocolMessageType(
    "Operation",
    (_message.Message,),
    dict(
        PathFiltersEntry=_reflection.GeneratedProtocolMessageType(
            "PathFiltersEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_OPERATION_PATHFILTERSENTRY,
                __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2"
                # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.Operation.PathFiltersEntry)
            ),
        ),
        DESCRIPTOR=_OPERATION,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Contains an operation for a resource inspired by the JSON-PATCH format
  with support for: \* Custom filters for describing partial array patch.
  \* Extended path values for describing nested arrays. \* Custom fields
  for describing the resource for which the operation is being described.
  \* Allows extension to custom operations not natively supported by
  RFC6902. See https://tools.ietf.org/html/rfc6902 for details on the
  original RFC.
  
  
  Attributes:
      action:
          Type of this operation. Contains one of 'and', 'remove',
          'replace', 'move', 'copy', 'test' and custom operations. This
          field is case-insensitive and always populated.
      resource_type:
          Type of GCP resource being modified/tested. This field is
          always populated. Example:
          cloudresourcemanager.googleapis.com/Project,
          compute.googleapis.com/Instance
      resource:
          Contains the fully qualified resource name. This field is
          always populated. ex:
          //cloudresourcemanager.googleapis.com/projects/foo.
      path:
          Path to the target field being operated on. If the operation
          is at the resource level, then path should be "/". This field
          is always populated.
      source_resource:
          Can be set with action 'copy' to copy resource configuration
          across different resources of the same type. Example: A
          resource clone can be done via action = 'copy', path = "/",
          from = "/", source\_resource = and resource\_name = . This
          field is empty for all other values of ``action``.
      source_path:
          Can be set with action 'copy' or 'move' to indicate the source
          field within resource or source\_resource, ignored if provided
          for other operation types.
      value:
          Value for the ``path`` field. Set if action is
          'add'/'replace'/'test'.
      path_filters:
          Set of filters to apply if ``path`` refers to array elements
          or nested array elements in order to narrow down to a single
          unique element that is being tested/modified. Note that this
          is intended to be an exact match per filter. Example: {
          "/versions/*/name" : "it-123"
          "/versions/*/targetSize/percent": 20 } Example: {
          "/bindings/*/role": "roles/admin" "/bindings/*/condition" :
          null } Example: { "/bindings/*/role": "roles/admin"
          "/bindings/*/members/\*" : ["x@google.com", "y@google.com"] }
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.Operation)
    ),
)
_sym_db.RegisterMessage(Operation)
_sym_db.RegisterMessage(Operation.PathFiltersEntry)

CostProjection = _reflection.GeneratedProtocolMessageType(
    "CostProjection",
    (_message.Message,),
    dict(
        DESCRIPTOR=_COSTPROJECTION,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Contains metadata about how much money a recommendation can save or
  incur.
  
  
  Attributes:
      cost:
          An approximate projection on amount saved or amount incurred.
          Negative cost units indicate cost savings and positive cost
          units indicate increase. See google.type.Money documentation
          for positive/negative units.
      duration:
          Duration for which this cost applies.
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.CostProjection)
    ),
)
_sym_db.RegisterMessage(CostProjection)

Impact = _reflection.GeneratedProtocolMessageType(
    "Impact",
    (_message.Message,),
    dict(
        DESCRIPTOR=_IMPACT,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Contains the impact a recommendation can have for a given category.
  
  
  Attributes:
      category:
          Category that is being targeted.
      projection:
          Contains projections (if any) for this category.
      cost_projection:
          Use with CategoryType.COST
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.Impact)
    ),
)
_sym_db.RegisterMessage(Impact)

RecommendationStateInfo = _reflection.GeneratedProtocolMessageType(
    "RecommendationStateInfo",
    (_message.Message,),
    dict(
        StateMetadataEntry=_reflection.GeneratedProtocolMessageType(
            "StateMetadataEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY,
                __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2"
                # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.RecommendationStateInfo.StateMetadataEntry)
            ),
        ),
        DESCRIPTOR=_RECOMMENDATIONSTATEINFO,
        __module__="google.cloud.recommender_v1beta1.proto.recommendation_pb2",
        __doc__="""Information for state. Contains state and metadata.
  
  
  Attributes:
      state:
          The state of the recommendation, Eg ACTIVE, SUCCEEDED, FAILED.
      state_metadata:
          A map of metadata for the state, provided by user or
          automations systems.
  """,
        # @@protoc_insertion_point(class_scope:google.cloud.recommender.v1beta1.RecommendationStateInfo)
    ),
)
_sym_db.RegisterMessage(RecommendationStateInfo)
_sym_db.RegisterMessage(RecommendationStateInfo.StateMetadataEntry)


DESCRIPTOR._options = None
_OPERATION_PATHFILTERSENTRY._options = None
_RECOMMENDATIONSTATEINFO_STATEMETADATAENTRY._options = None
# @@protoc_insertion_point(module_scope)
