google-cloud-recommender-v1 0.13.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a2815a42960253e0b94acb6c0d0af70bb8e3c1a51edc5942c927a5a3b9c2aec4
4
- data.tar.gz: a026c31f9568dceb8d5d606ee068a1fb16fb7a561b518def108f64b645e746e6
3
+ metadata.gz: 9b4297f40d6baffecbcd75a8d86f600d16d39a1574de8826c43853ecfd79d30e
4
+ data.tar.gz: 335b30dea992cda14379fec2ea54c931abb5628b6bbfcfdbbf15bf8e9b9c5446
5
5
  SHA512:
6
- metadata.gz: 83802766054e6a7cdfb145c514d9e071f60fdab46e6ca5a41ca673f6390d6be0c7bd367721b34a2920571a3348cfcaad7c57167f58eaa10854c34274ae4338b9
7
- data.tar.gz: 9805563a000af6eb0204248bcaf06bc7d8ac93c324e690138819f2944300ea331d9d027fef11ccf67e3fba69d293a7777ac6c142d6db8f5a402eb1f43a7e71ec
6
+ metadata.gz: dfea89a83975994db3e7cdfa1be6b9453f987797b1502f2cea6e24f8a95d8b9324ca5fc8be8098b9837b2987fcda9fb9ddc02ba8606a59b90039878e973321c7
7
+ data.tar.gz: 7fd273321c43f41fe04e7b2f18de9870319c0365df08c8b42b9989a267e699e9f0ac08d69ed38b02a307112b474dd3839c8e877f851fb3e5143ff882b2d51848
@@ -10,7 +10,7 @@ require 'google/protobuf/struct_pb'
10
10
  require 'google/protobuf/timestamp_pb'
11
11
 
12
12
 
13
- descriptor_data = "\n)google/cloud/recommender/v1/insight.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb6\t\n\x07Insight\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x18\n\x10target_resources\x18\t \x03(\t\x12\x17\n\x0finsight_subtype\x18\n \x01(\t\x12(\n\x07\x63ontent\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x35\n\x11last_refresh_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x12observation_period\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\nstate_info\x18\x06 \x01(\x0b\x32-.google.cloud.recommender.v1.InsightStateInfo\x12?\n\x08\x63\x61tegory\x18\x07 \x01(\x0e\x32-.google.cloud.recommender.v1.Insight.Category\x12?\n\x08severity\x18\x0f \x01(\x0e\x32-.google.cloud.recommender.v1.Insight.Severity\x12\x0c\n\x04\x65tag\x18\x0b \x01(\t\x12`\n\x1a\x61ssociated_recommendations\x18\x08 \x03(\x0b\x32<.google.cloud.recommender.v1.Insight.RecommendationReference\x1a\x31\n\x17RecommendationReference\x12\x16\n\x0erecommendation\x18\x01 \x01(\t\"`\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\x12\x11\n\rMANAGEABILITY\x10\x04\"Q\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x12\x0c\n\x08\x43RITICAL\x10\x04:\x9f\x03\xea\x41\x9b\x03\n\"recommender.googleapis.com/Insight\x12Vprojects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12\x65\x62illingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12Tfolders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12`organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\"\xaf\x02\n\x10InsightStateInfo\x12\x42\n\x05state\x18\x01 \x01(\x0e\x32\x33.google.cloud.recommender.v1.InsightStateInfo.State\x12X\n\x0estate_metadata\x18\x02 \x03(\x0b\x32@.google.cloud.recommender.v1.InsightStateInfo.StateMetadataEntry\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"G\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\r\n\tDISMISSED\x10\x03\x42\xf0\x03\n\x1f\x63om.google.cloud.recommender.v1B\x0cInsightProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1\xea\x41\xd3\x02\n&recommender.googleapis.com/InsightType\x12\x43projects/{project}/locations/{location}/insightTypes/{insight_type}\x12RbillingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}\x12\x41\x66olders/{folder}/locations/{location}/insightTypes/{insight_type}\x12Morganizations/{organization}/locations/{location}/insightTypes/{insight_type}b\x06proto3"
13
+ descriptor_data = "\n)google/cloud/recommender/v1/insight.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdc\t\n\x07Insight\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x18\n\x10target_resources\x18\t \x03(\t\x12\x17\n\x0finsight_subtype\x18\n \x01(\t\x12(\n\x07\x63ontent\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x35\n\x11last_refresh_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x12observation_period\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x41\n\nstate_info\x18\x06 \x01(\x0b\x32-.google.cloud.recommender.v1.InsightStateInfo\x12?\n\x08\x63\x61tegory\x18\x07 \x01(\x0e\x32-.google.cloud.recommender.v1.Insight.Category\x12?\n\x08severity\x18\x0f \x01(\x0e\x32-.google.cloud.recommender.v1.Insight.Severity\x12\x0c\n\x04\x65tag\x18\x0b \x01(\t\x12`\n\x1a\x61ssociated_recommendations\x18\x08 \x03(\x0b\x32<.google.cloud.recommender.v1.Insight.RecommendationReference\x1a\x31\n\x17RecommendationReference\x12\x16\n\x0erecommendation\x18\x01 \x01(\t\"\x85\x01\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\x12\x11\n\rMANAGEABILITY\x10\x04\x12\x12\n\x0eSUSTAINABILITY\x10\x05\x12\x0f\n\x0bRELIABILITY\x10\x06\"Q\n\x08Severity\x12\x18\n\x14SEVERITY_UNSPECIFIED\x10\x00\x12\x07\n\x03LOW\x10\x01\x12\n\n\x06MEDIUM\x10\x02\x12\x08\n\x04HIGH\x10\x03\x12\x0c\n\x08\x43RITICAL\x10\x04:\x9f\x03\xea\x41\x9b\x03\n\"recommender.googleapis.com/Insight\x12Vprojects/{project}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12\x65\x62illingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12Tfolders/{folder}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\x12`organizations/{organization}/locations/{location}/insightTypes/{insight_type}/insights/{insight}\"\xaf\x02\n\x10InsightStateInfo\x12\x42\n\x05state\x18\x01 \x01(\x0e\x32\x33.google.cloud.recommender.v1.InsightStateInfo.State\x12X\n\x0estate_metadata\x18\x02 \x03(\x0b\x32@.google.cloud.recommender.v1.InsightStateInfo.StateMetadataEntry\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"G\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TIVE\x10\x01\x12\x0c\n\x08\x41\x43\x43\x45PTED\x10\x02\x12\r\n\tDISMISSED\x10\x03\x42\xf0\x03\n\x1f\x63om.google.cloud.recommender.v1B\x0cInsightProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1\xea\x41\xd3\x02\n&recommender.googleapis.com/InsightType\x12\x43projects/{project}/locations/{location}/insightTypes/{insight_type}\x12RbillingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}\x12\x41\x66olders/{folder}/locations/{location}/insightTypes/{insight_type}\x12Morganizations/{organization}/locations/{location}/insightTypes/{insight_type}b\x06proto3"
14
14
 
15
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
16
 
@@ -10,7 +10,7 @@ require 'google/protobuf/struct_pb'
10
10
  require 'google/protobuf/timestamp_pb'
11
11
 
12
12
 
13
- descriptor_data = "\n5google/cloud/recommender/v1/insight_type_config.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd6\x04\n\x11InsightTypeConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12`\n\x1einsight_type_generation_config\x18\x02 \x01(\x0b\x32\x38.google.cloud.recommender.v1.InsightTypeGenerationConfig\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0brevision_id\x18\x05 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x03\x12T\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32?.google.cloud.recommender.v1.InsightTypeConfig.AnnotationsEntry\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xd4\x01\xea\x41\xd0\x01\n,recommender.googleapis.com/InsightTypeConfig\x12Jprojects/{project}/locations/{location}/insightTypes/{insight_type}/config\x12Torganizations/{organization}/locations/{location}/insightTypes/{insight_type}/config\"F\n\x1bInsightTypeGenerationConfig\x12\'\n\x06params\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\xa3\x01\n\x1f\x63om.google.cloud.recommender.v1B\x16InsightTypeConfigProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
13
+ descriptor_data = "\n5google/cloud/recommender/v1/insight_type_config.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xb1\x05\n\x11InsightTypeConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12`\n\x1einsight_type_generation_config\x18\x02 \x01(\x0b\x32\x38.google.cloud.recommender.v1.InsightTypeGenerationConfig\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0brevision_id\x18\x05 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x03\x12T\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32?.google.cloud.recommender.v1.InsightTypeConfig.AnnotationsEntry\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xaf\x02\xea\x41\xab\x02\n,recommender.googleapis.com/InsightTypeConfig\x12Jprojects/{project}/locations/{location}/insightTypes/{insight_type}/config\x12Torganizations/{organization}/locations/{location}/insightTypes/{insight_type}/config\x12YbillingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/config\"F\n\x1bInsightTypeGenerationConfig\x12\'\n\x06params\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\xa3\x01\n\x1f\x63om.google.cloud.recommender.v1B\x16InsightTypeConfigProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
14
14
 
15
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
16
 
@@ -11,7 +11,7 @@ require 'google/protobuf/timestamp_pb'
11
11
  require 'google/type/money_pb'
12
12
 
13
13
 
14
- descriptor_data = "\n0google/cloud/recommender/v1/recommendation.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/type/money.proto\"\xa2\t\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.v1.Impact\x12>\n\x11\x61\x64\x64itional_impact\x18\x06 \x03(\x0b\x32#.google.cloud.recommender.v1.Impact\x12\x46\n\x08priority\x18\x11 \x01(\x0e\x32\x34.google.cloud.recommender.v1.Recommendation.Priority\x12\x43\n\x07\x63ontent\x18\x07 \x01(\x0b\x32\x32.google.cloud.recommender.v1.RecommendationContent\x12H\n\nstate_info\x18\n \x01(\x0b\x32\x34.google.cloud.recommender.v1.RecommendationStateInfo\x12\x0c\n\x04\x65tag\x18\x0b \x01(\t\x12Y\n\x13\x61ssociated_insights\x18\x0e \x03(\x0b\x32<.google.cloud.recommender.v1.Recommendation.InsightReference\x12\x14\n\x0cxor_group_id\x18\x12 \x01(\t\x1a#\n\x10InsightReference\x12\x0f\n\x07insight\x18\x01 \x01(\t\"D\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x06\n\x02P4\x10\x01\x12\x06\n\x02P3\x10\x02\x12\x06\n\x02P2\x10\x03\x12\x06\n\x02P1\x10\x04:\xda\x03\xea\x41\xd6\x03\n)recommender.googleapis.com/Recommendation\x12\x63projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12rbillingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12\x61\x66olders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12morganizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\"\x89\x01\n\x15RecommendationContent\x12\x45\n\x10operation_groups\x18\x02 \x03(\x0b\x32+.google.cloud.recommender.v1.OperationGroup\x12)\n\x08overview\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"L\n\x0eOperationGroup\x12:\n\noperations\x18\x01 \x03(\x0b\x32&.google.cloud.recommender.v1.Operation\"\xd7\x04\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.ValueH\x00\x12\x42\n\rvalue_matcher\x18\n \x01(\x0b\x32).google.cloud.recommender.v1.ValueMatcherH\x00\x12M\n\x0cpath_filters\x18\x08 \x03(\x0b\x32\x37.google.cloud.recommender.v1.Operation.PathFiltersEntry\x12Z\n\x13path_value_matchers\x18\x0b \x03(\x0b\x32=.google.cloud.recommender.v1.Operation.PathValueMatchersEntry\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\x1a\x63\n\x16PathValueMatchersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.recommender.v1.ValueMatcher:\x02\x38\x01\x42\x0c\n\npath_value\":\n\x0cValueMatcher\x12\x19\n\x0fmatches_pattern\x18\x01 \x01(\tH\x00\x42\x0f\n\rmatch_variant\"_\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\">\n\x12SecurityProjection\x12(\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xd0\x02\n\x06Impact\x12>\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32,.google.cloud.recommender.v1.Impact.Category\x12\x46\n\x0f\x63ost_projection\x18\x64 \x01(\x0b\x32+.google.cloud.recommender.v1.CostProjectionH\x00\x12N\n\x13security_projection\x18\x65 \x01(\x0b\x32/.google.cloud.recommender.v1.SecurityProjectionH\x00\"`\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\x12\x11\n\rMANAGEABILITY\x10\x04\x42\x0c\n\nprojection\"\xde\x02\n\x17RecommendationStateInfo\x12I\n\x05state\x18\x01 \x01(\x0e\x32:.google.cloud.recommender.v1.RecommendationStateInfo.State\x12_\n\x0estate_metadata\x18\x02 \x03(\x0b\x32G.google.cloud.recommender.v1.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\xde\x03\n\x1f\x63om.google.cloud.recommender.v1P\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1\xea\x41\xcf\x02\n&recommender.googleapis.com/Recommender\x12\x42projects/{project}/locations/{location}/recommenders/{recommender}\x12QbillingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}\x12@folders/{folder}/locations/{location}/recommenders/{recommender}\x12Lorganizations/{organization}/locations/{location}/recommenders/{recommender}b\x06proto3"
14
+ descriptor_data = "\n0google/cloud/recommender/v1/recommendation.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x19google/api/resource.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/type/money.proto\"\xa2\t\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.v1.Impact\x12>\n\x11\x61\x64\x64itional_impact\x18\x06 \x03(\x0b\x32#.google.cloud.recommender.v1.Impact\x12\x46\n\x08priority\x18\x11 \x01(\x0e\x32\x34.google.cloud.recommender.v1.Recommendation.Priority\x12\x43\n\x07\x63ontent\x18\x07 \x01(\x0b\x32\x32.google.cloud.recommender.v1.RecommendationContent\x12H\n\nstate_info\x18\n \x01(\x0b\x32\x34.google.cloud.recommender.v1.RecommendationStateInfo\x12\x0c\n\x04\x65tag\x18\x0b \x01(\t\x12Y\n\x13\x61ssociated_insights\x18\x0e \x03(\x0b\x32<.google.cloud.recommender.v1.Recommendation.InsightReference\x12\x14\n\x0cxor_group_id\x18\x12 \x01(\t\x1a#\n\x10InsightReference\x12\x0f\n\x07insight\x18\x01 \x01(\t\"D\n\x08Priority\x12\x18\n\x14PRIORITY_UNSPECIFIED\x10\x00\x12\x06\n\x02P4\x10\x01\x12\x06\n\x02P3\x10\x02\x12\x06\n\x02P2\x10\x03\x12\x06\n\x02P1\x10\x04:\xda\x03\xea\x41\xd6\x03\n)recommender.googleapis.com/Recommendation\x12\x63projects/{project}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12rbillingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12\x61\x66olders/{folder}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\x12morganizations/{organization}/locations/{location}/recommenders/{recommender}/recommendations/{recommendation}\"\x89\x01\n\x15RecommendationContent\x12\x45\n\x10operation_groups\x18\x02 \x03(\x0b\x32+.google.cloud.recommender.v1.OperationGroup\x12)\n\x08overview\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"L\n\x0eOperationGroup\x12:\n\noperations\x18\x01 \x03(\x0b\x32&.google.cloud.recommender.v1.Operation\"\xd7\x04\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.ValueH\x00\x12\x42\n\rvalue_matcher\x18\n \x01(\x0b\x32).google.cloud.recommender.v1.ValueMatcherH\x00\x12M\n\x0cpath_filters\x18\x08 \x03(\x0b\x32\x37.google.cloud.recommender.v1.Operation.PathFiltersEntry\x12Z\n\x13path_value_matchers\x18\x0b \x03(\x0b\x32=.google.cloud.recommender.v1.Operation.PathValueMatchersEntry\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\x1a\x63\n\x16PathValueMatchersEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.recommender.v1.ValueMatcher:\x02\x38\x01\x42\x0c\n\npath_value\":\n\x0cValueMatcher\x12\x19\n\x0fmatches_pattern\x18\x01 \x01(\tH\x00\x42\x0f\n\rmatch_variant\"_\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\">\n\x12SecurityProjection\x12(\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"Y\n\x18SustainabilityProjection\x12\x10\n\x08kg_c_o2e\x18\x01 \x01(\x01\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xec\x01\n\x15ReliabilityProjection\x12J\n\x05risks\x18\x01 \x03(\x0e\x32;.google.cloud.recommender.v1.ReliabilityProjection.RiskType\x12(\n\x07\x64\x65tails\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\"]\n\x08RiskType\x12\x19\n\x15RISK_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12SERVICE_DISRUPTION\x10\x01\x12\r\n\tDATA_LOSS\x10\x02\x12\x0f\n\x0b\x41\x43\x43\x45SS_DENY\x10\x03\"\xa8\x04\n\x06Impact\x12>\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32,.google.cloud.recommender.v1.Impact.Category\x12\x46\n\x0f\x63ost_projection\x18\x64 \x01(\x0b\x32+.google.cloud.recommender.v1.CostProjectionH\x00\x12N\n\x13security_projection\x18\x65 \x01(\x0b\x32/.google.cloud.recommender.v1.SecurityProjectionH\x00\x12Z\n\x19sustainability_projection\x18\x66 \x01(\x0b\x32\x35.google.cloud.recommender.v1.SustainabilityProjectionH\x00\x12T\n\x16reliability_projection\x18g \x01(\x0b\x32\x32.google.cloud.recommender.v1.ReliabilityProjectionH\x00\"\x85\x01\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\x12\x11\n\rMANAGEABILITY\x10\x04\x12\x12\n\x0eSUSTAINABILITY\x10\x05\x12\x0f\n\x0bRELIABILITY\x10\x06\x42\x0c\n\nprojection\"\xde\x02\n\x17RecommendationStateInfo\x12I\n\x05state\x18\x01 \x01(\x0e\x32:.google.cloud.recommender.v1.RecommendationStateInfo.State\x12_\n\x0estate_metadata\x18\x02 \x03(\x0b\x32G.google.cloud.recommender.v1.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\xde\x03\n\x1f\x63om.google.cloud.recommender.v1P\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1\xea\x41\xcf\x02\n&recommender.googleapis.com/Recommender\x12\x42projects/{project}/locations/{location}/recommenders/{recommender}\x12QbillingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}\x12@folders/{folder}/locations/{location}/recommenders/{recommender}\x12Lorganizations/{organization}/locations/{location}/recommenders/{recommender}b\x06proto3"
15
15
 
16
16
  pool = Google::Protobuf::DescriptorPool.generated_pool
17
17
 
@@ -54,6 +54,9 @@ module Google
54
54
  ValueMatcher = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ValueMatcher").msgclass
55
55
  CostProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.CostProjection").msgclass
56
56
  SecurityProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.SecurityProjection").msgclass
57
+ SustainabilityProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.SustainabilityProjection").msgclass
58
+ ReliabilityProjection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ReliabilityProjection").msgclass
59
+ ReliabilityProjection::RiskType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ReliabilityProjection.RiskType").enummodule
57
60
  Impact = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact").msgclass
58
61
  Impact::Category = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.Impact.Category").enummodule
59
62
  RecommendationStateInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.RecommendationStateInfo").msgclass
@@ -154,7 +154,7 @@ module Google
154
154
  credentials = @config.credentials
155
155
  # Use self-signed JWT if the endpoint is unchanged from default,
156
156
  # but only if the default endpoint does not have a region prefix.
157
- enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
157
+ enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
158
158
  !@config.endpoint.split(".").first.include?("-")
159
159
  credentials ||= Credentials.default scope: @config.scope,
160
160
  enable_self_signed_jwt: enable_self_signed_jwt
@@ -718,6 +718,101 @@ module Google
718
718
  raise ::Google::Cloud::Error.from_error(e)
719
719
  end
720
720
 
721
+ ##
722
+ # Mark the Recommendation State as Dismissed. Users can use this method to
723
+ # indicate to the Recommender API that an ACTIVE recommendation has to
724
+ # be marked back as DISMISSED.
725
+ #
726
+ # MarkRecommendationDismissed can be applied to recommendations in ACTIVE
727
+ # state.
728
+ #
729
+ # Requires the recommender.*.update IAM permission for the specified
730
+ # recommender.
731
+ #
732
+ # @overload mark_recommendation_dismissed(request, options = nil)
733
+ # Pass arguments to `mark_recommendation_dismissed` via a request object, either of type
734
+ # {::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest} or an equivalent Hash.
735
+ #
736
+ # @param request [::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest, ::Hash]
737
+ # A request object representing the call parameters. Required. To specify no
738
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
739
+ # @param options [::Gapic::CallOptions, ::Hash]
740
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
741
+ #
742
+ # @overload mark_recommendation_dismissed(name: nil, etag: nil)
743
+ # Pass arguments to `mark_recommendation_dismissed` via keyword arguments. Note that at
744
+ # least one keyword argument is required. To specify no parameters, or to keep all
745
+ # the default parameter values, pass an empty Hash as a request object (see above).
746
+ #
747
+ # @param name [::String]
748
+ # Name of the recommendation.
749
+ # @param etag [::String]
750
+ # Fingerprint of the Recommendation. Provides optimistic locking.
751
+ #
752
+ # @yield [response, operation] Access the result along with the RPC operation
753
+ # @yieldparam response [::Google::Cloud::Recommender::V1::Recommendation]
754
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
755
+ #
756
+ # @return [::Google::Cloud::Recommender::V1::Recommendation]
757
+ #
758
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
759
+ #
760
+ # @example Basic example
761
+ # require "google/cloud/recommender/v1"
762
+ #
763
+ # # Create a client object. The client can be reused for multiple calls.
764
+ # client = Google::Cloud::Recommender::V1::Recommender::Client.new
765
+ #
766
+ # # Create a request. To set request fields, pass in keyword arguments.
767
+ # request = Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest.new
768
+ #
769
+ # # Call the mark_recommendation_dismissed method.
770
+ # result = client.mark_recommendation_dismissed request
771
+ #
772
+ # # The returned object is of type Google::Cloud::Recommender::V1::Recommendation.
773
+ # p result
774
+ #
775
+ def mark_recommendation_dismissed request, options = nil
776
+ raise ::ArgumentError, "request must be provided" if request.nil?
777
+
778
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest
779
+
780
+ # Converts hash and nil to an options object
781
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
782
+
783
+ # Customize the options with defaults
784
+ metadata = @config.rpcs.mark_recommendation_dismissed.metadata.to_h
785
+
786
+ # Set x-goog-api-client and x-goog-user-project headers
787
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
788
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
789
+ gapic_version: ::Google::Cloud::Recommender::V1::VERSION
790
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
791
+
792
+ header_params = {}
793
+ if request.name
794
+ header_params["name"] = request.name
795
+ end
796
+
797
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
798
+ metadata[:"x-goog-request-params"] ||= request_params_header
799
+
800
+ options.apply_defaults timeout: @config.rpcs.mark_recommendation_dismissed.timeout,
801
+ metadata: metadata,
802
+ retry_policy: @config.rpcs.mark_recommendation_dismissed.retry_policy
803
+
804
+ options.apply_defaults timeout: @config.timeout,
805
+ metadata: @config.metadata,
806
+ retry_policy: @config.retry_policy
807
+
808
+ @recommender_stub.call_rpc :mark_recommendation_dismissed, request, options: options do |response, operation|
809
+ yield response, operation if block_given?
810
+ return response
811
+ end
812
+ rescue ::GRPC::BadStatus => e
813
+ raise ::Google::Cloud::Error.from_error(e)
814
+ end
815
+
721
816
  ##
722
817
  # Marks the Recommendation State as Claimed. Users can use this method to
723
818
  # indicate to the Recommender API that they are starting to apply the
@@ -1053,6 +1148,8 @@ module Google
1053
1148
  #
1054
1149
  # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
1055
1150
  #
1151
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
1152
+ #
1056
1153
  # @yield [response, operation] Access the result along with the RPC operation
1057
1154
  # @yieldparam response [::Google::Cloud::Recommender::V1::RecommenderConfig]
1058
1155
  # @yieldparam operation [::GRPC::ActiveCall::Operation]
@@ -1232,11 +1329,13 @@ module Google
1232
1329
  #
1233
1330
  # Acceptable formats:
1234
1331
  #
1235
- # * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1332
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
1333
+ #
1334
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
1236
1335
  #
1237
- # * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1336
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
1238
1337
  #
1239
- # * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1338
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
1240
1339
  #
1241
1340
  # @yield [response, operation] Access the result along with the RPC operation
1242
1341
  # @yieldparam response [::Google::Cloud::Recommender::V1::InsightTypeConfig]
@@ -1475,7 +1574,9 @@ module Google
1475
1574
  class Configuration
1476
1575
  extend ::Gapic::Config
1477
1576
 
1478
- config_attr :endpoint, "recommender.googleapis.com", ::String
1577
+ DEFAULT_ENDPOINT = "recommender.googleapis.com"
1578
+
1579
+ config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1479
1580
  config_attr :credentials, nil do |value|
1480
1581
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1481
1582
  allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
@@ -1554,6 +1655,11 @@ module Google
1554
1655
  #
1555
1656
  attr_reader :get_recommendation
1556
1657
  ##
1658
+ # RPC-specific configuration for `mark_recommendation_dismissed`
1659
+ # @return [::Gapic::Config::Method]
1660
+ #
1661
+ attr_reader :mark_recommendation_dismissed
1662
+ ##
1557
1663
  # RPC-specific configuration for `mark_recommendation_claimed`
1558
1664
  # @return [::Gapic::Config::Method]
1559
1665
  #
@@ -1601,6 +1707,8 @@ module Google
1601
1707
  @list_recommendations = ::Gapic::Config::Method.new list_recommendations_config
1602
1708
  get_recommendation_config = parent_rpcs.get_recommendation if parent_rpcs.respond_to? :get_recommendation
1603
1709
  @get_recommendation = ::Gapic::Config::Method.new get_recommendation_config
1710
+ mark_recommendation_dismissed_config = parent_rpcs.mark_recommendation_dismissed if parent_rpcs.respond_to? :mark_recommendation_dismissed
1711
+ @mark_recommendation_dismissed = ::Gapic::Config::Method.new mark_recommendation_dismissed_config
1604
1712
  mark_recommendation_claimed_config = parent_rpcs.mark_recommendation_claimed if parent_rpcs.respond_to? :mark_recommendation_claimed
1605
1713
  @mark_recommendation_claimed = ::Gapic::Config::Method.new mark_recommendation_claimed_config
1606
1714
  mark_recommendation_succeeded_config = parent_rpcs.mark_recommendation_succeeded if parent_rpcs.respond_to? :mark_recommendation_succeeded
@@ -199,6 +199,15 @@ module Google
199
199
  # @param location [String]
200
200
  # @param insight_type [String]
201
201
  #
202
+ # @overload insight_type_config_path(billing_account:, location:, insight_type:)
203
+ # The resource will be in the following format:
204
+ #
205
+ # `billingAccounts/{billing_account}/locations/{location}/insightTypes/{insight_type}/config`
206
+ #
207
+ # @param billing_account [String]
208
+ # @param location [String]
209
+ # @param insight_type [String]
210
+ #
202
211
  # @return [::String]
203
212
  def insight_type_config_path **args
204
213
  resources = {
@@ -213,6 +222,12 @@ module Google
213
222
  raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
214
223
 
215
224
  "organizations/#{organization}/locations/#{location}/insightTypes/#{insight_type}/config"
225
+ end),
226
+ "billing_account:insight_type:location" => (proc do |billing_account:, location:, insight_type:|
227
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
228
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
229
+
230
+ "billingAccounts/#{billing_account}/locations/#{location}/insightTypes/#{insight_type}/config"
216
231
  end)
217
232
  }
218
233
 
@@ -396,6 +411,15 @@ module Google
396
411
  # @param location [String]
397
412
  # @param recommender [String]
398
413
  #
414
+ # @overload recommender_config_path(billing_account:, location:, recommender:)
415
+ # The resource will be in the following format:
416
+ #
417
+ # `billingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/config`
418
+ #
419
+ # @param billing_account [String]
420
+ # @param location [String]
421
+ # @param recommender [String]
422
+ #
399
423
  # @return [::String]
400
424
  def recommender_config_path **args
401
425
  resources = {
@@ -410,6 +434,12 @@ module Google
410
434
  raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
411
435
 
412
436
  "organizations/#{organization}/locations/#{location}/recommenders/#{recommender}/config"
437
+ end),
438
+ "billing_account:location:recommender" => (proc do |billing_account:, location:, recommender:|
439
+ raise ::ArgumentError, "billing_account cannot contain /" if billing_account.to_s.include? "/"
440
+ raise ::ArgumentError, "location cannot contain /" if location.to_s.include? "/"
441
+
442
+ "billingAccounts/#{billing_account}/locations/#{location}/recommenders/#{recommender}/config"
413
443
  end)
414
444
  }
415
445
 
@@ -150,7 +150,7 @@ module Google
150
150
  credentials = @config.credentials
151
151
  # Use self-signed JWT if the endpoint is unchanged from default,
152
152
  # but only if the default endpoint does not have a region prefix.
153
- enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
153
+ enable_self_signed_jwt = @config.endpoint == Configuration::DEFAULT_ENDPOINT &&
154
154
  !@config.endpoint.split(".").first.include?("-")
155
155
  credentials ||= Credentials.default scope: @config.scope,
156
156
  enable_self_signed_jwt: enable_self_signed_jwt
@@ -586,6 +586,78 @@ module Google
586
586
  raise ::Google::Cloud::Error.from_error(e)
587
587
  end
588
588
 
589
+ ##
590
+ # Mark the Recommendation State as Dismissed. Users can use this method to
591
+ # indicate to the Recommender API that an ACTIVE recommendation has to
592
+ # be marked back as DISMISSED.
593
+ #
594
+ # MarkRecommendationDismissed can be applied to recommendations in ACTIVE
595
+ # state.
596
+ #
597
+ # Requires the recommender.*.update IAM permission for the specified
598
+ # recommender.
599
+ #
600
+ # @overload mark_recommendation_dismissed(request, options = nil)
601
+ # Pass arguments to `mark_recommendation_dismissed` via a request object, either of type
602
+ # {::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest} or an equivalent Hash.
603
+ #
604
+ # @param request [::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest, ::Hash]
605
+ # A request object representing the call parameters. Required. To specify no
606
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
607
+ # @param options [::Gapic::CallOptions, ::Hash]
608
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
609
+ #
610
+ # @overload mark_recommendation_dismissed(name: nil, etag: nil)
611
+ # Pass arguments to `mark_recommendation_dismissed` via keyword arguments. Note that at
612
+ # least one keyword argument is required. To specify no parameters, or to keep all
613
+ # the default parameter values, pass an empty Hash as a request object (see above).
614
+ #
615
+ # @param name [::String]
616
+ # Name of the recommendation.
617
+ # @param etag [::String]
618
+ # Fingerprint of the Recommendation. Provides optimistic locking.
619
+ # @yield [result, operation] Access the result along with the TransportOperation object
620
+ # @yieldparam result [::Google::Cloud::Recommender::V1::Recommendation]
621
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
622
+ #
623
+ # @return [::Google::Cloud::Recommender::V1::Recommendation]
624
+ #
625
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
626
+ def mark_recommendation_dismissed request, options = nil
627
+ raise ::ArgumentError, "request must be provided" if request.nil?
628
+
629
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest
630
+
631
+ # Converts hash and nil to an options object
632
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
633
+
634
+ # Customize the options with defaults
635
+ call_metadata = @config.rpcs.mark_recommendation_dismissed.metadata.to_h
636
+
637
+ # Set x-goog-api-client and x-goog-user-project headers
638
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
639
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
640
+ gapic_version: ::Google::Cloud::Recommender::V1::VERSION,
641
+ transports_version_send: [:rest]
642
+
643
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
644
+
645
+ options.apply_defaults timeout: @config.rpcs.mark_recommendation_dismissed.timeout,
646
+ metadata: call_metadata,
647
+ retry_policy: @config.rpcs.mark_recommendation_dismissed.retry_policy
648
+
649
+ options.apply_defaults timeout: @config.timeout,
650
+ metadata: @config.metadata,
651
+ retry_policy: @config.retry_policy
652
+
653
+ @recommender_stub.mark_recommendation_dismissed request, options do |result, operation|
654
+ yield result, operation if block_given?
655
+ return result
656
+ end
657
+ rescue ::Gapic::Rest::Error => e
658
+ raise ::Google::Cloud::Error.from_error(e)
659
+ end
660
+
589
661
  ##
590
662
  # Marks the Recommendation State as Claimed. Users can use this method to
591
663
  # indicate to the Recommender API that they are starting to apply the
@@ -851,6 +923,8 @@ module Google
851
923
  # * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
852
924
  #
853
925
  # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
926
+ #
927
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
854
928
  # @yield [result, operation] Access the result along with the TransportOperation object
855
929
  # @yieldparam result [::Google::Cloud::Recommender::V1::RecommenderConfig]
856
930
  # @yieldparam operation [::Gapic::Rest::TransportOperation]
@@ -985,11 +1059,13 @@ module Google
985
1059
  #
986
1060
  # Acceptable formats:
987
1061
  #
988
- # * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1062
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
989
1063
  #
990
- # * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1064
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
991
1065
  #
992
- # * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
1066
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
1067
+ #
1068
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
993
1069
  # @yield [result, operation] Access the result along with the TransportOperation object
994
1070
  # @yieldparam result [::Google::Cloud::Recommender::V1::InsightTypeConfig]
995
1071
  # @yieldparam operation [::Gapic::Rest::TransportOperation]
@@ -1173,7 +1249,9 @@ module Google
1173
1249
  class Configuration
1174
1250
  extend ::Gapic::Config
1175
1251
 
1176
- config_attr :endpoint, "recommender.googleapis.com", ::String
1252
+ DEFAULT_ENDPOINT = "recommender.googleapis.com"
1253
+
1254
+ config_attr :endpoint, DEFAULT_ENDPOINT, ::String
1177
1255
  config_attr :credentials, nil do |value|
1178
1256
  allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
1179
1257
  allowed.any? { |klass| klass === value }
@@ -1249,6 +1327,11 @@ module Google
1249
1327
  #
1250
1328
  attr_reader :get_recommendation
1251
1329
  ##
1330
+ # RPC-specific configuration for `mark_recommendation_dismissed`
1331
+ # @return [::Gapic::Config::Method]
1332
+ #
1333
+ attr_reader :mark_recommendation_dismissed
1334
+ ##
1252
1335
  # RPC-specific configuration for `mark_recommendation_claimed`
1253
1336
  # @return [::Gapic::Config::Method]
1254
1337
  #
@@ -1296,6 +1379,8 @@ module Google
1296
1379
  @list_recommendations = ::Gapic::Config::Method.new list_recommendations_config
1297
1380
  get_recommendation_config = parent_rpcs.get_recommendation if parent_rpcs.respond_to? :get_recommendation
1298
1381
  @get_recommendation = ::Gapic::Config::Method.new get_recommendation_config
1382
+ mark_recommendation_dismissed_config = parent_rpcs.mark_recommendation_dismissed if parent_rpcs.respond_to? :mark_recommendation_dismissed
1383
+ @mark_recommendation_dismissed = ::Gapic::Config::Method.new mark_recommendation_dismissed_config
1299
1384
  mark_recommendation_claimed_config = parent_rpcs.mark_recommendation_claimed if parent_rpcs.respond_to? :mark_recommendation_claimed
1300
1385
  @mark_recommendation_claimed = ::Gapic::Config::Method.new mark_recommendation_claimed_config
1301
1386
  mark_recommendation_succeeded_config = parent_rpcs.mark_recommendation_succeeded if parent_rpcs.respond_to? :mark_recommendation_succeeded
@@ -59,7 +59,7 @@ module Google
59
59
 
60
60
  verb, uri, query_string_params, body = ServiceStub.transcode_list_insights_request request_pb
61
61
  query_string_params = if query_string_params.any?
62
- query_string_params.to_h { |p| p.split("=", 2) }
62
+ query_string_params.to_h { |p| p.split "=", 2 }
63
63
  else
64
64
  {}
65
65
  end
@@ -97,7 +97,7 @@ module Google
97
97
 
98
98
  verb, uri, query_string_params, body = ServiceStub.transcode_get_insight_request request_pb
99
99
  query_string_params = if query_string_params.any?
100
- query_string_params.to_h { |p| p.split("=", 2) }
100
+ query_string_params.to_h { |p| p.split "=", 2 }
101
101
  else
102
102
  {}
103
103
  end
@@ -135,7 +135,7 @@ module Google
135
135
 
136
136
  verb, uri, query_string_params, body = ServiceStub.transcode_mark_insight_accepted_request request_pb
137
137
  query_string_params = if query_string_params.any?
138
- query_string_params.to_h { |p| p.split("=", 2) }
138
+ query_string_params.to_h { |p| p.split "=", 2 }
139
139
  else
140
140
  {}
141
141
  end
@@ -173,7 +173,7 @@ module Google
173
173
 
174
174
  verb, uri, query_string_params, body = ServiceStub.transcode_list_recommendations_request request_pb
175
175
  query_string_params = if query_string_params.any?
176
- query_string_params.to_h { |p| p.split("=", 2) }
176
+ query_string_params.to_h { |p| p.split "=", 2 }
177
177
  else
178
178
  {}
179
179
  end
@@ -211,7 +211,45 @@ module Google
211
211
 
212
212
  verb, uri, query_string_params, body = ServiceStub.transcode_get_recommendation_request request_pb
213
213
  query_string_params = if query_string_params.any?
214
- query_string_params.to_h { |p| p.split("=", 2) }
214
+ query_string_params.to_h { |p| p.split "=", 2 }
215
+ else
216
+ {}
217
+ end
218
+
219
+ response = @client_stub.make_http_request(
220
+ verb,
221
+ uri: uri,
222
+ body: body || "",
223
+ params: query_string_params,
224
+ options: options
225
+ )
226
+ operation = ::Gapic::Rest::TransportOperation.new response
227
+ result = ::Google::Cloud::Recommender::V1::Recommendation.decode_json response.body, ignore_unknown_fields: true
228
+
229
+ yield result, operation if block_given?
230
+ result
231
+ end
232
+
233
+ ##
234
+ # Baseline implementation for the mark_recommendation_dismissed REST call
235
+ #
236
+ # @param request_pb [::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest]
237
+ # A request object representing the call parameters. Required.
238
+ # @param options [::Gapic::CallOptions]
239
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
240
+ #
241
+ # @yield [result, operation] Access the result along with the TransportOperation object
242
+ # @yieldparam result [::Google::Cloud::Recommender::V1::Recommendation]
243
+ # @yieldparam operation [::Gapic::Rest::TransportOperation]
244
+ #
245
+ # @return [::Google::Cloud::Recommender::V1::Recommendation]
246
+ # A result object deserialized from the server's reply
247
+ def mark_recommendation_dismissed request_pb, options = nil
248
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
249
+
250
+ verb, uri, query_string_params, body = ServiceStub.transcode_mark_recommendation_dismissed_request request_pb
251
+ query_string_params = if query_string_params.any?
252
+ query_string_params.to_h { |p| p.split "=", 2 }
215
253
  else
216
254
  {}
217
255
  end
@@ -249,7 +287,7 @@ module Google
249
287
 
250
288
  verb, uri, query_string_params, body = ServiceStub.transcode_mark_recommendation_claimed_request request_pb
251
289
  query_string_params = if query_string_params.any?
252
- query_string_params.to_h { |p| p.split("=", 2) }
290
+ query_string_params.to_h { |p| p.split "=", 2 }
253
291
  else
254
292
  {}
255
293
  end
@@ -287,7 +325,7 @@ module Google
287
325
 
288
326
  verb, uri, query_string_params, body = ServiceStub.transcode_mark_recommendation_succeeded_request request_pb
289
327
  query_string_params = if query_string_params.any?
290
- query_string_params.to_h { |p| p.split("=", 2) }
328
+ query_string_params.to_h { |p| p.split "=", 2 }
291
329
  else
292
330
  {}
293
331
  end
@@ -325,7 +363,7 @@ module Google
325
363
 
326
364
  verb, uri, query_string_params, body = ServiceStub.transcode_mark_recommendation_failed_request request_pb
327
365
  query_string_params = if query_string_params.any?
328
- query_string_params.to_h { |p| p.split("=", 2) }
366
+ query_string_params.to_h { |p| p.split "=", 2 }
329
367
  else
330
368
  {}
331
369
  end
@@ -363,7 +401,7 @@ module Google
363
401
 
364
402
  verb, uri, query_string_params, body = ServiceStub.transcode_get_recommender_config_request request_pb
365
403
  query_string_params = if query_string_params.any?
366
- query_string_params.to_h { |p| p.split("=", 2) }
404
+ query_string_params.to_h { |p| p.split "=", 2 }
367
405
  else
368
406
  {}
369
407
  end
@@ -401,7 +439,7 @@ module Google
401
439
 
402
440
  verb, uri, query_string_params, body = ServiceStub.transcode_update_recommender_config_request request_pb
403
441
  query_string_params = if query_string_params.any?
404
- query_string_params.to_h { |p| p.split("=", 2) }
442
+ query_string_params.to_h { |p| p.split "=", 2 }
405
443
  else
406
444
  {}
407
445
  end
@@ -439,7 +477,7 @@ module Google
439
477
 
440
478
  verb, uri, query_string_params, body = ServiceStub.transcode_get_insight_type_config_request request_pb
441
479
  query_string_params = if query_string_params.any?
442
- query_string_params.to_h { |p| p.split("=", 2) }
480
+ query_string_params.to_h { |p| p.split "=", 2 }
443
481
  else
444
482
  {}
445
483
  end
@@ -477,7 +515,7 @@ module Google
477
515
 
478
516
  verb, uri, query_string_params, body = ServiceStub.transcode_update_insight_type_config_request request_pb
479
517
  query_string_params = if query_string_params.any?
480
- query_string_params.to_h { |p| p.split("=", 2) }
518
+ query_string_params.to_h { |p| p.split "=", 2 }
481
519
  else
482
520
  {}
483
521
  end
@@ -710,6 +748,52 @@ module Google
710
748
  transcoder.transcode request_pb
711
749
  end
712
750
 
751
+ ##
752
+ # @private
753
+ #
754
+ # GRPC transcoding helper method for the mark_recommendation_dismissed REST call
755
+ #
756
+ # @param request_pb [::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest]
757
+ # A request object representing the call parameters. Required.
758
+ # @return [Array(String, [String, nil], Hash{String => String})]
759
+ # Uri, Body, Query string parameters
760
+ def self.transcode_mark_recommendation_dismissed_request request_pb
761
+ transcoder = Gapic::Rest::GrpcTranscoder.new
762
+ .with_bindings(
763
+ uri_method: :post,
764
+ uri_template: "/v1/{name}:markDismissed",
765
+ body: "*",
766
+ matches: [
767
+ ["name", %r{^projects/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+/?$}, false]
768
+ ]
769
+ )
770
+ .with_bindings(
771
+ uri_method: :post,
772
+ uri_template: "/v1/{name}:markDismissed",
773
+ body: "*",
774
+ matches: [
775
+ ["name", %r{^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+/?$}, false]
776
+ ]
777
+ )
778
+ .with_bindings(
779
+ uri_method: :post,
780
+ uri_template: "/v1/{name}:markDismissed",
781
+ body: "*",
782
+ matches: [
783
+ ["name", %r{^folders/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+/?$}, false]
784
+ ]
785
+ )
786
+ .with_bindings(
787
+ uri_method: :post,
788
+ uri_template: "/v1/{name}:markDismissed",
789
+ body: "*",
790
+ matches: [
791
+ ["name", %r{^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/recommendations/[^/]+/?$}, false]
792
+ ]
793
+ )
794
+ transcoder.transcode request_pb
795
+ end
796
+
713
797
  ##
714
798
  # @private
715
799
  #
@@ -873,6 +957,13 @@ module Google
873
957
  ["name", %r{^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config/?$}, false]
874
958
  ]
875
959
  )
960
+ .with_bindings(
961
+ uri_method: :get,
962
+ uri_template: "/v1/{name}",
963
+ matches: [
964
+ ["name", %r{^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config/?$}, false]
965
+ ]
966
+ )
876
967
  transcoder.transcode request_pb
877
968
  end
878
969
 
@@ -903,6 +994,14 @@ module Google
903
994
  ["recommender_config.name", %r{^organizations/[^/]+/locations/[^/]+/recommenders/[^/]+/config/?$}, false]
904
995
  ]
905
996
  )
997
+ .with_bindings(
998
+ uri_method: :patch,
999
+ uri_template: "/v1/{recommender_config.name}",
1000
+ body: "recommender_config",
1001
+ matches: [
1002
+ ["recommender_config.name", %r{^billingAccounts/[^/]+/locations/[^/]+/recommenders/[^/]+/config/?$}, false]
1003
+ ]
1004
+ )
906
1005
  transcoder.transcode request_pb
907
1006
  end
908
1007
 
@@ -931,6 +1030,13 @@ module Google
931
1030
  ["name", %r{^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config/?$}, false]
932
1031
  ]
933
1032
  )
1033
+ .with_bindings(
1034
+ uri_method: :get,
1035
+ uri_template: "/v1/{name}",
1036
+ matches: [
1037
+ ["name", %r{^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config/?$}, false]
1038
+ ]
1039
+ )
934
1040
  transcoder.transcode request_pb
935
1041
  end
936
1042
 
@@ -961,6 +1067,14 @@ module Google
961
1067
  ["insight_type_config.name", %r{^organizations/[^/]+/locations/[^/]+/insightTypes/[^/]+/config/?$}, false]
962
1068
  ]
963
1069
  )
1070
+ .with_bindings(
1071
+ uri_method: :patch,
1072
+ uri_template: "/v1/{insight_type_config.name}",
1073
+ body: "insight_type_config",
1074
+ matches: [
1075
+ ["insight_type_config.name", %r{^billingAccounts/[^/]+/locations/[^/]+/insightTypes/[^/]+/config/?$}, false]
1076
+ ]
1077
+ )
964
1078
  transcoder.transcode request_pb
965
1079
  end
966
1080
  end
@@ -10,7 +10,7 @@ require 'google/protobuf/struct_pb'
10
10
  require 'google/protobuf/timestamp_pb'
11
11
 
12
12
 
13
- descriptor_data = "\n4google/cloud/recommender/v1/recommender_config.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xd3\x04\n\x11RecommenderConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12_\n\x1drecommender_generation_config\x18\x02 \x01(\x0b\x32\x38.google.cloud.recommender.v1.RecommenderGenerationConfig\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0brevision_id\x18\x05 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x03\x12T\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32?.google.cloud.recommender.v1.RecommenderConfig.AnnotationsEntry\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xd2\x01\xea\x41\xce\x01\n,recommender.googleapis.com/RecommenderConfig\x12Iprojects/{project}/locations/{location}/recommenders/{recommender}/config\x12Sorganizations/{organization}/locations/{location}/recommenders/{recommender}/config\"F\n\x1bRecommenderGenerationConfig\x12\'\n\x06params\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\xa3\x01\n\x1f\x63om.google.cloud.recommender.v1B\x16RecommenderConfigProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
13
+ descriptor_data = "\n4google/cloud/recommender/v1/recommender_config.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xad\x05\n\x11RecommenderConfig\x12\x0c\n\x04name\x18\x01 \x01(\t\x12_\n\x1drecommender_generation_config\x18\x02 \x01(\x0b\x32\x38.google.cloud.recommender.v1.RecommenderGenerationConfig\x12\x0c\n\x04\x65tag\x18\x03 \x01(\t\x12/\n\x0bupdate_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x0brevision_id\x18\x05 \x01(\tB\x06\xe0\x41\x05\xe0\x41\x03\x12T\n\x0b\x61nnotations\x18\x06 \x03(\x0b\x32?.google.cloud.recommender.v1.RecommenderConfig.AnnotationsEntry\x12\x14\n\x0c\x64isplay_name\x18\x07 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\xac\x02\xea\x41\xa8\x02\n,recommender.googleapis.com/RecommenderConfig\x12Iprojects/{project}/locations/{location}/recommenders/{recommender}/config\x12Sorganizations/{organization}/locations/{location}/recommenders/{recommender}/config\x12XbillingAccounts/{billing_account}/locations/{location}/recommenders/{recommender}/config\"F\n\x1bRecommenderGenerationConfig\x12\'\n\x06params\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructB\xa3\x01\n\x1f\x63om.google.cloud.recommender.v1B\x16RecommenderConfigProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
14
14
 
15
15
  pool = Google::Protobuf::DescriptorPool.generated_pool
16
16
 
@@ -15,7 +15,7 @@ require 'google/cloud/recommender/v1/recommender_config_pb'
15
15
  require 'google/protobuf/field_mask_pb'
16
16
 
17
17
 
18
- descriptor_data = "\n5google/cloud/recommender/v1/recommender_service.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/recommender/v1/insight.proto\x1a\x35google/cloud/recommender/v1/insight_type_config.proto\x1a\x30google/cloud/recommender/v1/recommendation.proto\x1a\x34google/cloud/recommender/v1/recommender_config.proto\x1a google/protobuf/field_mask.proto\"\x9b\x01\n\x13ListInsightsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&recommender.googleapis.com/InsightType\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"g\n\x14ListInsightsResponse\x12\x36\n\x08insights\x18\x01 \x03(\x0b\x32$.google.cloud.recommender.v1.Insight\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"M\n\x11GetInsightRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"recommender.googleapis.com/Insight\"\x88\x02\n\x1aMarkInsightAcceptedRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"recommender.googleapis.com/Insight\x12g\n\x0estate_metadata\x18\x02 \x03(\x0b\x32J.google.cloud.recommender.v1.MarkInsightAcceptedRequest.StateMetadataEntryB\x03\xe0\x41\x01\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9d\x01\n\x1aListRecommendationsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&recommender.googleapis.com/Recommender\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"|\n\x1bListRecommendationsResponse\x12\x44\n\x0frecommendations\x18\x01 \x03(\x0b\x32+.google.cloud.recommender.v1.Recommendation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"[\n\x18GetRecommendationRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\"\x96\x02\n MarkRecommendationClaimedRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12h\n\x0estate_metadata\x18\x02 \x03(\x0b\x32P.google.cloud.recommender.v1.MarkRecommendationClaimedRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9a\x02\n\"MarkRecommendationSucceededRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12j\n\x0estate_metadata\x18\x02 \x03(\x0b\x32R.google.cloud.recommender.v1.MarkRecommendationSucceededRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x94\x02\n\x1fMarkRecommendationFailedRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12g\n\x0estate_metadata\x18\x02 \x03(\x0b\x32O.google.cloud.recommender.v1.MarkRecommendationFailedRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\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\x1bGetRecommenderConfigRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,recommender.googleapis.com/RecommenderConfig\"\xb9\x01\n\x1eUpdateRecommenderConfigRequest\x12O\n\x12recommender_config\x18\x01 \x01(\x0b\x32..google.cloud.recommender.v1.RecommenderConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\"a\n\x1bGetInsightTypeConfigRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,recommender.googleapis.com/InsightTypeConfig\"\xba\x01\n\x1eUpdateInsightTypeConfigRequest\x12P\n\x13insight_type_config\x18\x01 \x01(\x0b\x32..google.cloud.recommender.v1.InsightTypeConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\x32\xff\'\n\x0bRecommender\x12\x8b\x03\n\x0cListInsights\x12\x30.google.cloud.recommender.v1.ListInsightsRequest\x1a\x31.google.cloud.recommender.v1.ListInsightsResponse\"\x95\x02\x82\xd3\xe4\x93\x02\x85\x02\x12;/v1/{parent=projects/*/locations/*/insightTypes/*}/insightsZD\x12\x42/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insightsZ<\x12:/v1/{parent=folders/*/locations/*/insightTypes/*}/insightsZB\x12@/v1/{parent=organizations/*/locations/*/insightTypes/*}/insights\xda\x41\x06parent\x12\xf8\x02\n\nGetInsight\x12..google.cloud.recommender.v1.GetInsightRequest\x1a$.google.cloud.recommender.v1.Insight\"\x93\x02\x82\xd3\xe4\x93\x02\x85\x02\x12;/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}ZD\x12\x42/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}Z<\x12:/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}ZB\x12@/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}\xda\x41\x04name\x12\xde\x03\n\x13MarkInsightAccepted\x12\x37.google.cloud.recommender.v1.MarkInsightAcceptedRequest\x1a$.google.cloud.recommender.v1.Insight\"\xe7\x02\x82\xd3\xe4\x93\x02\xc5\x02\"H/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZT\"O/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZL\"G/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZR\"M/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*\xda\x41\x18name,state_metadata,etag\x12\xcc\x03\n\x13ListRecommendations\x12\x37.google.cloud.recommender.v1.ListRecommendationsRequest\x1a\x38.google.cloud.recommender.v1.ListRecommendationsResponse\"\xc1\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x42/v1/{parent=projects/*/locations/*/recommenders/*}/recommendationsZK\x12I/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendationsZC\x12\x41/v1/{parent=folders/*/locations/*/recommenders/*}/recommendationsZI\x12G/v1/{parent=organizations/*/locations/*/recommenders/*}/recommendations\xda\x41\x06parent\xda\x41\rparent,filter\x12\xa9\x03\n\x11GetRecommendation\x12\x35.google.cloud.recommender.v1.GetRecommendationRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xaf\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x42/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}ZK\x12I/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}ZC\x12\x41/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}ZI\x12G/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}\xda\x41\x04name\x12\x89\x04\n\x19MarkRecommendationClaimed\x12=.google.cloud.recommender.v1.MarkRecommendationClaimedRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xff\x02\x82\xd3\xe4\x93\x02\xdd\x02\"N/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZZ\"U/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZR\"M/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZX\"S/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*\xda\x41\x18name,state_metadata,etag\x12\x95\x04\n\x1bMarkRecommendationSucceeded\x12?.google.cloud.recommender.v1.MarkRecommendationSucceededRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\x87\x03\x82\xd3\xe4\x93\x02\xe5\x02\"P/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*Z\\\"W/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*ZT\"O/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*ZZ\"U/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*\xda\x41\x18name,state_metadata,etag\x12\x83\x04\n\x18MarkRecommendationFailed\x12<.google.cloud.recommender.v1.MarkRecommendationFailedRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xfb\x02\x82\xd3\xe4\x93\x02\xd9\x02\"M/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZY\"T/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZQ\"L/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZW\"R/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*\xda\x41\x18name,state_metadata,etag\x12\x89\x02\n\x14GetRecommenderConfig\x12\x38.google.cloud.recommender.v1.GetRecommenderConfigRequest\x1a..google.cloud.recommender.v1.RecommenderConfig\"\x86\x01\x82\xd3\xe4\x93\x02y\x12\x37/v1/{name=projects/*/locations/*/recommenders/*/config}Z>\x12</v1/{name=organizations/*/locations/*/recommenders/*/config}\xda\x41\x04name\x12\xf8\x02\n\x17UpdateRecommenderConfig\x12;.google.cloud.recommender.v1.UpdateRecommenderConfigRequest\x1a..google.cloud.recommender.v1.RecommenderConfig\"\xef\x01\x82\xd3\xe4\x93\x02\xc7\x01\x32J/v1/{recommender_config.name=projects/*/locations/*/recommenders/*/config}:\x12recommender_configZe2O/v1/{recommender_config.name=organizations/*/locations/*/recommenders/*/config}:\x12recommender_config\xda\x41\x1erecommender_config,update_mask\x12\x89\x02\n\x14GetInsightTypeConfig\x12\x38.google.cloud.recommender.v1.GetInsightTypeConfigRequest\x1a..google.cloud.recommender.v1.InsightTypeConfig\"\x86\x01\x82\xd3\xe4\x93\x02y\x12\x37/v1/{name=projects/*/locations/*/insightTypes/*/config}Z>\x12</v1/{name=organizations/*/locations/*/insightTypes/*/config}\xda\x41\x04name\x12\xfd\x02\n\x17UpdateInsightTypeConfig\x12;.google.cloud.recommender.v1.UpdateInsightTypeConfigRequest\x1a..google.cloud.recommender.v1.InsightTypeConfig\"\xf4\x01\x82\xd3\xe4\x93\x02\xcb\x01\x32K/v1/{insight_type_config.name=projects/*/locations/*/insightTypes/*/config}:\x13insight_type_configZg2P/v1/{insight_type_config.name=organizations/*/locations/*/insightTypes/*/config}:\x13insight_type_config\xda\x41\x1finsight_type_config,update_mask\x1aN\xca\x41\x1arecommender.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x9d\x01\n\x1f\x63om.google.cloud.recommender.v1B\x10RecommenderProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
18
+ descriptor_data = "\n5google/cloud/recommender/v1/recommender_service.proto\x12\x1bgoogle.cloud.recommender.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/recommender/v1/insight.proto\x1a\x35google/cloud/recommender/v1/insight_type_config.proto\x1a\x30google/cloud/recommender/v1/recommendation.proto\x1a\x34google/cloud/recommender/v1/recommender_config.proto\x1a google/protobuf/field_mask.proto\"\x9b\x01\n\x13ListInsightsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&recommender.googleapis.com/InsightType\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x13\n\x06\x66ilter\x18\x04 \x01(\tB\x03\xe0\x41\x01\"g\n\x14ListInsightsResponse\x12\x36\n\x08insights\x18\x01 \x03(\x0b\x32$.google.cloud.recommender.v1.Insight\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"M\n\x11GetInsightRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"recommender.googleapis.com/Insight\"\x88\x02\n\x1aMarkInsightAcceptedRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"recommender.googleapis.com/Insight\x12g\n\x0estate_metadata\x18\x02 \x03(\x0b\x32J.google.cloud.recommender.v1.MarkInsightAcceptedRequest.StateMetadataEntryB\x03\xe0\x41\x01\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9d\x01\n\x1aListRecommendationsRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&recommender.googleapis.com/Recommender\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\"|\n\x1bListRecommendationsResponse\x12\x44\n\x0frecommendations\x18\x01 \x03(\x0b\x32+.google.cloud.recommender.v1.Recommendation\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"[\n\x18GetRecommendationRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\"s\n\"MarkRecommendationDismissedRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12\x0c\n\x04\x65tag\x18\x02 \x01(\t\"\x96\x02\n MarkRecommendationClaimedRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12h\n\x0estate_metadata\x18\x02 \x03(\x0b\x32P.google.cloud.recommender.v1.MarkRecommendationClaimedRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9a\x02\n\"MarkRecommendationSucceededRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12j\n\x0estate_metadata\x18\x02 \x03(\x0b\x32R.google.cloud.recommender.v1.MarkRecommendationSucceededRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\x1a\x34\n\x12StateMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x94\x02\n\x1fMarkRecommendationFailedRequest\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x02\xfa\x41+\n)recommender.googleapis.com/Recommendation\x12g\n\x0estate_metadata\x18\x02 \x03(\x0b\x32O.google.cloud.recommender.v1.MarkRecommendationFailedRequest.StateMetadataEntry\x12\x11\n\x04\x65tag\x18\x03 \x01(\tB\x03\xe0\x41\x02\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\x1bGetRecommenderConfigRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,recommender.googleapis.com/RecommenderConfig\"\xb9\x01\n\x1eUpdateRecommenderConfigRequest\x12O\n\x12recommender_config\x18\x01 \x01(\x0b\x32..google.cloud.recommender.v1.RecommenderConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\"a\n\x1bGetInsightTypeConfigRequest\x12\x42\n\x04name\x18\x01 \x01(\tB4\xe0\x41\x02\xfa\x41.\n,recommender.googleapis.com/InsightTypeConfig\"\xba\x01\n\x1eUpdateInsightTypeConfigRequest\x12P\n\x13insight_type_config\x18\x01 \x01(\x0b\x32..google.cloud.recommender.v1.InsightTypeConfigB\x03\xe0\x41\x02\x12/\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x15\n\rvalidate_only\x18\x03 \x01(\x08\x32\xd6.\n\x0bRecommender\x12\x8b\x03\n\x0cListInsights\x12\x30.google.cloud.recommender.v1.ListInsightsRequest\x1a\x31.google.cloud.recommender.v1.ListInsightsResponse\"\x95\x02\x82\xd3\xe4\x93\x02\x85\x02\x12;/v1/{parent=projects/*/locations/*/insightTypes/*}/insightsZD\x12\x42/v1/{parent=billingAccounts/*/locations/*/insightTypes/*}/insightsZ<\x12:/v1/{parent=folders/*/locations/*/insightTypes/*}/insightsZB\x12@/v1/{parent=organizations/*/locations/*/insightTypes/*}/insights\xda\x41\x06parent\x12\xf8\x02\n\nGetInsight\x12..google.cloud.recommender.v1.GetInsightRequest\x1a$.google.cloud.recommender.v1.Insight\"\x93\x02\x82\xd3\xe4\x93\x02\x85\x02\x12;/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}ZD\x12\x42/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}Z<\x12:/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}ZB\x12@/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}\xda\x41\x04name\x12\xde\x03\n\x13MarkInsightAccepted\x12\x37.google.cloud.recommender.v1.MarkInsightAcceptedRequest\x1a$.google.cloud.recommender.v1.Insight\"\xe7\x02\x82\xd3\xe4\x93\x02\xc5\x02\"H/v1/{name=projects/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZT\"O/v1/{name=billingAccounts/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZL\"G/v1/{name=folders/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*ZR\"M/v1/{name=organizations/*/locations/*/insightTypes/*/insights/*}:markAccepted:\x01*\xda\x41\x18name,state_metadata,etag\x12\xcc\x03\n\x13ListRecommendations\x12\x37.google.cloud.recommender.v1.ListRecommendationsRequest\x1a\x38.google.cloud.recommender.v1.ListRecommendationsResponse\"\xc1\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x42/v1/{parent=projects/*/locations/*/recommenders/*}/recommendationsZK\x12I/v1/{parent=billingAccounts/*/locations/*/recommenders/*}/recommendationsZC\x12\x41/v1/{parent=folders/*/locations/*/recommenders/*}/recommendationsZI\x12G/v1/{parent=organizations/*/locations/*/recommenders/*}/recommendations\xda\x41\x06parent\xda\x41\rparent,filter\x12\xa9\x03\n\x11GetRecommendation\x12\x35.google.cloud.recommender.v1.GetRecommendationRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xaf\x02\x82\xd3\xe4\x93\x02\xa1\x02\x12\x42/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}ZK\x12I/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}ZC\x12\x41/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}ZI\x12G/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}\xda\x41\x04name\x12\xfa\x03\n\x1bMarkRecommendationDismissed\x12?.google.cloud.recommender.v1.MarkRecommendationDismissedRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xec\x02\x82\xd3\xe4\x93\x02\xe5\x02\"P/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markDismissed:\x01*Z\\\"W/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markDismissed:\x01*ZT\"O/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markDismissed:\x01*ZZ\"U/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markDismissed:\x01*\x12\x89\x04\n\x19MarkRecommendationClaimed\x12=.google.cloud.recommender.v1.MarkRecommendationClaimedRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xff\x02\x82\xd3\xe4\x93\x02\xdd\x02\"N/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZZ\"U/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZR\"M/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*ZX\"S/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markClaimed:\x01*\xda\x41\x18name,state_metadata,etag\x12\x95\x04\n\x1bMarkRecommendationSucceeded\x12?.google.cloud.recommender.v1.MarkRecommendationSucceededRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\x87\x03\x82\xd3\xe4\x93\x02\xe5\x02\"P/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*Z\\\"W/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*ZT\"O/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*ZZ\"U/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markSucceeded:\x01*\xda\x41\x18name,state_metadata,etag\x12\x83\x04\n\x18MarkRecommendationFailed\x12<.google.cloud.recommender.v1.MarkRecommendationFailedRequest\x1a+.google.cloud.recommender.v1.Recommendation\"\xfb\x02\x82\xd3\xe4\x93\x02\xd9\x02\"M/v1/{name=projects/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZY\"T/v1/{name=billingAccounts/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZQ\"L/v1/{name=folders/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*ZW\"R/v1/{name=organizations/*/locations/*/recommenders/*/recommendations/*}:markFailed:\x01*\xda\x41\x18name,state_metadata,etag\x12\xcc\x02\n\x14GetRecommenderConfig\x12\x38.google.cloud.recommender.v1.GetRecommenderConfigRequest\x1a..google.cloud.recommender.v1.RecommenderConfig\"\xc9\x01\x82\xd3\xe4\x93\x02\xbb\x01\x12\x37/v1/{name=projects/*/locations/*/recommenders/*/config}Z>\x12</v1/{name=organizations/*/locations/*/recommenders/*/config}Z@\x12>/v1/{name=billingAccounts/*/locations/*/recommenders/*/config}\xda\x41\x04name\x12\xe1\x03\n\x17UpdateRecommenderConfig\x12;.google.cloud.recommender.v1.UpdateRecommenderConfigRequest\x1a..google.cloud.recommender.v1.RecommenderConfig\"\xd8\x02\x82\xd3\xe4\x93\x02\xb0\x02\x32J/v1/{recommender_config.name=projects/*/locations/*/recommenders/*/config}:\x12recommender_configZe2O/v1/{recommender_config.name=organizations/*/locations/*/recommenders/*/config}:\x12recommender_configZg2Q/v1/{recommender_config.name=billingAccounts/*/locations/*/recommenders/*/config}:\x12recommender_config\xda\x41\x1erecommender_config,update_mask\x12\xcc\x02\n\x14GetInsightTypeConfig\x12\x38.google.cloud.recommender.v1.GetInsightTypeConfigRequest\x1a..google.cloud.recommender.v1.InsightTypeConfig\"\xc9\x01\x82\xd3\xe4\x93\x02\xbb\x01\x12\x37/v1/{name=projects/*/locations/*/insightTypes/*/config}Z>\x12</v1/{name=organizations/*/locations/*/insightTypes/*/config}Z@\x12>/v1/{name=billingAccounts/*/locations/*/insightTypes/*/config}\xda\x41\x04name\x12\xe8\x03\n\x17UpdateInsightTypeConfig\x12;.google.cloud.recommender.v1.UpdateInsightTypeConfigRequest\x1a..google.cloud.recommender.v1.InsightTypeConfig\"\xdf\x02\x82\xd3\xe4\x93\x02\xb6\x02\x32K/v1/{insight_type_config.name=projects/*/locations/*/insightTypes/*/config}:\x13insight_type_configZg2P/v1/{insight_type_config.name=organizations/*/locations/*/insightTypes/*/config}:\x13insight_type_configZi2R/v1/{insight_type_config.name=billingAccounts/*/locations/*/insightTypes/*/config}:\x13insight_type_config\xda\x41\x1finsight_type_config,update_mask\x1aN\xca\x41\x1arecommender.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\x9d\x01\n\x1f\x63om.google.cloud.recommender.v1B\x10RecommenderProtoP\x01ZAcloud.google.com/go/recommender/apiv1/recommenderpb;recommenderpb\xa2\x02\x04\x43REC\xaa\x02\x1bGoogle.Cloud.Recommender.V1b\x06proto3"
19
19
 
20
20
  pool = Google::Protobuf::DescriptorPool.generated_pool
21
21
 
@@ -57,6 +57,7 @@ module Google
57
57
  ListRecommendationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListRecommendationsRequest").msgclass
58
58
  ListRecommendationsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.ListRecommendationsResponse").msgclass
59
59
  GetRecommendationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.GetRecommendationRequest").msgclass
60
+ MarkRecommendationDismissedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.MarkRecommendationDismissedRequest").msgclass
60
61
  MarkRecommendationClaimedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.MarkRecommendationClaimedRequest").msgclass
61
62
  MarkRecommendationSucceededRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.MarkRecommendationSucceededRequest").msgclass
62
63
  MarkRecommendationFailedRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.recommender.v1.MarkRecommendationFailedRequest").msgclass
@@ -55,6 +55,16 @@ module Google
55
55
  # Gets the requested recommendation. Requires the recommender.*.get
56
56
  # IAM permission for the specified recommender.
57
57
  rpc :GetRecommendation, ::Google::Cloud::Recommender::V1::GetRecommendationRequest, ::Google::Cloud::Recommender::V1::Recommendation
58
+ # Mark the Recommendation State as Dismissed. Users can use this method to
59
+ # indicate to the Recommender API that an ACTIVE recommendation has to
60
+ # be marked back as DISMISSED.
61
+ #
62
+ # MarkRecommendationDismissed can be applied to recommendations in ACTIVE
63
+ # state.
64
+ #
65
+ # Requires the recommender.*.update IAM permission for the specified
66
+ # recommender.
67
+ rpc :MarkRecommendationDismissed, ::Google::Cloud::Recommender::V1::MarkRecommendationDismissedRequest, ::Google::Cloud::Recommender::V1::Recommendation
58
68
  # Marks the Recommendation State as Claimed. Users can use this method to
59
69
  # indicate to the Recommender API that they are starting to apply the
60
70
  # recommendation themselves. This stops the recommendation content from being
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module Recommender
23
23
  module V1
24
- VERSION = "0.13.0"
24
+ VERSION = "0.14.0"
25
25
  end
26
26
  end
27
27
  end
@@ -66,6 +66,20 @@ module Google
66
66
  # a non-empty value will be returned. The user will not be aware of what
67
67
  # non-empty value to expect.
68
68
  NON_EMPTY_DEFAULT = 7
69
+
70
+ # Denotes that the field in a resource (a message annotated with
71
+ # google.api.resource) is used in the resource name to uniquely identify the
72
+ # resource. For AIP-compliant APIs, this should only be applied to the
73
+ # `name` field on the resource.
74
+ #
75
+ # This behavior should not be applied to references to other resources within
76
+ # the message.
77
+ #
78
+ # The identifier field of resources often have different field behavior
79
+ # depending on the request it is embedded in (e.g. for Create methods name
80
+ # is optional and unused, while for Update methods it is required). Instead
81
+ # of method-specific annotations, only `IDENTIFIER` is required.
82
+ IDENTIFIER = 8
69
83
  end
70
84
  end
71
85
  end
@@ -22,7 +22,7 @@ module Google
22
22
  module Recommender
23
23
  module V1
24
24
  # An insight along with the information used to derive the insight. The insight
25
- # may have associated recomendations as well.
25
+ # may have associated recommendations as well.
26
26
  # @!attribute [rw] name
27
27
  # @return [::String]
28
28
  # Name of the insight.
@@ -94,6 +94,12 @@ module Google
94
94
 
95
95
  # This insight is related to manageability.
96
96
  MANAGEABILITY = 4
97
+
98
+ # The insight is related to sustainability.
99
+ SUSTAINABILITY = 5
100
+
101
+ # This insight is related to reliability.
102
+ RELIABILITY = 6
97
103
  end
98
104
 
99
105
  # Insight severity levels.
@@ -278,6 +278,48 @@ module Google
278
278
  extend ::Google::Protobuf::MessageExts::ClassMethods
279
279
  end
280
280
 
281
+ # Contains metadata about how much sustainability a recommendation can save or
282
+ # incur.
283
+ # @!attribute [rw] kg_c_o2e
284
+ # @return [::Float]
285
+ # Carbon Footprint generated in kg of CO2 equivalent.
286
+ # Chose kg_c_o2e so that the name renders correctly in camelCase (kgCO2e).
287
+ # @!attribute [rw] duration
288
+ # @return [::Google::Protobuf::Duration]
289
+ # Duration for which this sustainability applies.
290
+ class SustainabilityProjection
291
+ include ::Google::Protobuf::MessageExts
292
+ extend ::Google::Protobuf::MessageExts::ClassMethods
293
+ end
294
+
295
+ # Contains information on the impact of a reliability recommendation.
296
+ # @!attribute [rw] risks
297
+ # @return [::Array<::Google::Cloud::Recommender::V1::ReliabilityProjection::RiskType>]
298
+ # Reliability risks mitigated by this recommendation.
299
+ # @!attribute [rw] details
300
+ # @return [::Google::Protobuf::Struct]
301
+ # Per-recommender projection.
302
+ class ReliabilityProjection
303
+ include ::Google::Protobuf::MessageExts
304
+ extend ::Google::Protobuf::MessageExts::ClassMethods
305
+
306
+ # The risk associated with the reliability issue.
307
+ module RiskType
308
+ # Default unspecified risk. Don't use directly.
309
+ RISK_TYPE_UNSPECIFIED = 0
310
+
311
+ # Potential service downtime.
312
+ SERVICE_DISRUPTION = 1
313
+
314
+ # Potential data loss.
315
+ DATA_LOSS = 2
316
+
317
+ # Potential access denial. The service is still up but some or all clients
318
+ # can't access it.
319
+ ACCESS_DENY = 3
320
+ end
321
+ end
322
+
281
323
  # Contains the impact a recommendation can have for a given category.
282
324
  # @!attribute [rw] category
283
325
  # @return [::Google::Cloud::Recommender::V1::Impact::Category]
@@ -288,6 +330,12 @@ module Google
288
330
  # @!attribute [rw] security_projection
289
331
  # @return [::Google::Cloud::Recommender::V1::SecurityProjection]
290
332
  # Use with CategoryType.SECURITY
333
+ # @!attribute [rw] sustainability_projection
334
+ # @return [::Google::Cloud::Recommender::V1::SustainabilityProjection]
335
+ # Use with CategoryType.SUSTAINABILITY
336
+ # @!attribute [rw] reliability_projection
337
+ # @return [::Google::Cloud::Recommender::V1::ReliabilityProjection]
338
+ # Use with CategoryType.RELAIBILITY
291
339
  class Impact
292
340
  include ::Google::Protobuf::MessageExts
293
341
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -308,6 +356,12 @@ module Google
308
356
 
309
357
  # Indicates a potential increase or decrease in manageability.
310
358
  MANAGEABILITY = 4
359
+
360
+ # Indicates a potential increase or decrease in sustainability.
361
+ SUSTAINABILITY = 5
362
+
363
+ # Indicates a potential increase or decrease in reliability.
364
+ RELIABILITY = 6
311
365
  end
312
366
  end
313
367
 
@@ -208,6 +208,18 @@ module Google
208
208
  extend ::Google::Protobuf::MessageExts::ClassMethods
209
209
  end
210
210
 
211
+ # Request for the `MarkRecommendationDismissed` Method.
212
+ # @!attribute [rw] name
213
+ # @return [::String]
214
+ # Name of the recommendation.
215
+ # @!attribute [rw] etag
216
+ # @return [::String]
217
+ # Fingerprint of the Recommendation. Provides optimistic locking.
218
+ class MarkRecommendationDismissedRequest
219
+ include ::Google::Protobuf::MessageExts
220
+ extend ::Google::Protobuf::MessageExts::ClassMethods
221
+ end
222
+
211
223
  # Request for the `MarkRecommendationClaimed` Method.
212
224
  # @!attribute [rw] name
213
225
  # @return [::String]
@@ -301,6 +313,8 @@ module Google
301
313
  # * `projects/[PROJECT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
302
314
  #
303
315
  # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
316
+ #
317
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/config`
304
318
  class GetRecommenderConfigRequest
305
319
  include ::Google::Protobuf::MessageExts
306
320
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -329,11 +343,13 @@ module Google
329
343
  #
330
344
  # Acceptable formats:
331
345
  #
332
- # * `projects/[PROJECT_NUMBER]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
346
+ # * `projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
347
+ #
348
+ # * `projects/[PROJECT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
333
349
  #
334
- # * `projects/[PROJECT_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
350
+ # * `organizations/[ORGANIZATION_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
335
351
  #
336
- # * `organizations/[ORGANIZATION_ID]/locations/global/recommenders/[INSIGHT_TYPE_ID]/config`
352
+ # * `billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/config`
337
353
  class GetInsightTypeConfigRequest
338
354
  include ::Google::Protobuf::MessageExts
339
355
  extend ::Google::Protobuf::MessageExts::ClassMethods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-recommender-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-01 00:00:00.000000000 Z
11
+ date: 2023-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.19.0
19
+ version: 0.19.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.19.0
29
+ version: 0.19.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -220,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
220
220
  - !ruby/object:Gem::Version
221
221
  version: '0'
222
222
  requirements: []
223
- rubygems_version: 3.4.2
223
+ rubygems_version: 3.4.19
224
224
  signing_key:
225
225
  specification_version: 4
226
226
  summary: API Client library for the Recommender V1 API